Webhook: delivery and retries
When a webhook message counts as delivered and when meetpiloot tries again. Five retries, spread over just over seven hours.
A message counts as delivered as soon as the receiving system replies with a 2xx status within 5 seconds. So reply quickly and do the heavy lifting after you have replied. A slow endpoint is cut off after 5 seconds.
Retries
If the first attempt fails, meetpiloot automatically tries again, leaving more time between each attempt:
- Nowattempt 1
- +1 minattempt 2
- +5 minattempt 3
- +15 minattempt 4
- +60 minattempt 5
- +360 minattempt 6
The first attempt goes out straight away. Five retries follow, 1, 5, 15, 60 and 360 minutes after the previous one. That puts the last attempt just over seven hours after the first.
When meetpiloot tries again
| Your system's response | What happens |
|---|---|
| 2xx | Delivered. |
| No response within 5 seconds, or no connection | Retry on the schedule. |
| 408 or 429 | Retry on the schedule. These codes mean "try again later". |
| 5xx | Retry on the schedule. |
| Other 4xx, such as 400, 401 or 404 | No retry. The system deliberately refused the message, for example because of a wrong address or a signature that does not match. |
If the last attempt also fails, the delivery shows as Failed in Recent messages in your dashboard, with the last error message.
Recognising repeated messages
meetpiloot delivers every message at least once. If a response gets lost, for example because your system processed the message but did not answer in time, the same message can arrive again.
That is why every message carries the header X-Meetpiloot-Delivery with a fixed ID. The ID stays the same on every retry of the same delivery. Store it, and do not process a message whose ID you already know a second time. Still answer with a 2xx, so meetpiloot stops retrying.
Read next
Stuck?
Email us or open a ticket from your dashboard. We reply within 1 to 2 working days.