Retries & replay
What counts as a success
A delivery succeeds when your endpoint answers with a 2xx status within 10 seconds. Redirects
are not followed. Any other status, a timeout, a TLS error or a refused connection is a failure.
Automatic retries
A failed delivery is retried 5 times, with an exponential backoff:
| Attempt | Delay after the previous one |
|---|---|
| 1st retry | 1 minute |
| 2nd retry | 5 minutes |
| 3rd retry | 30 minutes |
| 4th retry | 2 hours |
| 5th retry | 12 hours |
After the last retry the delivery is marked failed. The event itself is kept for 30 days: you can still replay it or read it from the Events API.
Because of retries, the same event may reach you more than once, and events may arrive out of
order. Deduplicate on the event id and, when order matters, compare created or fetch the
latest state of the object.
Automatic disabling
An endpoint whose deliveries have all been failing for 3 days is disabled automatically. The workspace owners receive an e-mail and a notification. Fix the endpoint, then re-enable it from its page: new events flow again, and you can replay the ones you missed.
Inspecting deliveries
Each endpoint’s page in Settings → Developers → Webhooks lists its recent deliveries, with for each attempt:
- the event and its type;
- the HTTP status your endpoint returned and its response time;
- the exact request headers and body Skoup sent;
- the response body your endpoint returned (first 8 KB).
Replaying an event
From a delivery or from Settings → Developers → Events, click Resend to deliver an event again to an endpoint. The resend is a new delivery with the same event ID, so your deduplication keeps working.
Sending a test event
From an endpoint’s page, Send test event delivers a sample of any event type, with
"livemode": false. It is the fastest way to check your signature verification and your parsing
before real events arrive.