Webhook Retries
We will attempts to deliver each webhook message based on a retry schedule with exponential backoff.
Retry Schedule
Each message is attempted based on the following schedule, where each period starts following the failure of the preceding attempt:
- Immediately
- 5 seconds
- 5 minutes
- 30 minutes
- 2 hours
- 5 hours
- 10 hours
- 10 hours (in addition to the previous)
If an endpoint is removed or disabled delivery attempts to the endpoint will be disabled as well.
For example, an attempt that fails three times before eventually succeeding will be completed roughly 35 minutes and 5 seconds after the first attempt.
Indicating Successful Delivery
The method to indicate that a webhook has been processed is by returning a 2xx
(status code 200-299) response to the webhook message within a reasonable timeframe (15s).
Any other status code, including 3xx
redirects, is treated as a failure.
Idempotency
To ensure that webhook messages are processed exactly once, the webhook message includes a unique svix-id
header field.
If you receive a webhook message with an svix-id
that you have already processed, you should ignore the message.