Webhooks

Retries

How MailBlastr retries failed webhook deliveries: up to 5 attempts on a fixed backoff schedule, and where to inspect the delivery history.

When MailBlastr POSTs an event to your endpoint, it expects a 2xx response within a few seconds. If your endpoint returns a non-2xx status, times out, or is unreachable, the delivery is marked failed and queued for retry.

Delivery is never lost on a single transient error — each message is retried on a fixed schedule before it is given up on.

Automatic retries

MailBlastr makes up to 5 attempts per webhook message, with a growing delay between them. Each delay is measured from the failure of the preceding attempt, not from the original event time.

  • Attempt 1 — immediately
  • Attempt 2 — 1 minute after the first failure
  • Attempt 3 — 5 minutes after the second failure
  • Attempt 4 — 30 minutes after the third failure
  • Attempt 5 — 2 hours after the fourth failure (the final attempt)

For example, a message that fails its first three attempts before eventually succeeding is delivered roughly 36 minutes after the first attempt (immediate + 1m + 5m + 30m). A message that fails all five attempts is given up on about 2 hours and 36 minutes after the first attempt.

If an endpoint is removed or disabled, all pending delivery attempts to that endpoint stop as well. After 50 consecutive failed deliveries an endpoint is disabled automatically.

Inspecting deliveries

To see how an endpoint is doing, open the Webhooks page in the dashboard and choose History on the endpoint. The 50 most recent deliveries are listed with the event name, the attempt number, the HTTP status MailBlastr received, when it happened, and the error if the attempt failed. Delivery history is kept for 90 days.

Each delivery carries the same svix-id header across every attempt, so your handler can treat retries idempotently — see How to store webhooks data for the dedup pattern.