Webhooks
Retries and failures
On this page
Answer with any 2xx status within 10 seconds. Anything else is a failure, and Bizisy tries again.
What counts as a failure#
- Any status other than
2xx, including redirects: they are never followed. - No answer within 10 seconds.
- TLS and connection errors, and DNS that doesn't resolve.
- An address that resolves to a private, loopback, link-local or cloud metadata address: Bizisy never connects to those.
Bizisy reads at most 64 KB of your answer and shows the start of it in the delivery log. Do slow work after answering.
The schedule#
A failed delivery is tried 8 times in all, for about a day:
| Attempt | When | Since the change |
|---|---|---|
| 1 | at once | — |
| 2 | 1 minute after the previous one | about 1 minutes |
| 3 | 5 minutes after the previous one | about 6 minutes |
| 4 | 30 minutes after the previous one | about 36 minutes |
| 5 | 2 hours after the previous one | about 2.6 hours |
| 6 | 5 hours after the previous one | about 7.6 hours |
| 7 | 8 hours after the previous one | about 15.6 hours |
| 8 | 9 hours after the previous one | about 24.6 hours |
Retries keep the same webhook-id, so you can tell a retry from a new event. Deliveries are sent by a job that runs every minute, so "at once" means within about a minute.
Turned off when it keeps failing#
If every attempt to an endpoint has failed for 24 hours or more (and at least 5 in a row), Bizisy turns the endpoint off and emails the company's owners and admins. Its pending deliveries stop. Fix the receiver, then turn the endpoint back on in Settings → Webhooks: the failure state is cleared.
The delivery log and resending#
Settings → Webhooks keeps 30 days of deliveries per endpoint: each attempt, its status, the response status, duration and error. Resend any delivery there, or with webhooks.deliveries.resend: it gets a fresh retry schedule and the same webhook-id. Test events and resends are limited to 30 per endpoint per hour.
Read the log from your code with webhooks.deliveries.list and webhooks.deliveries.get.
Endpoint rules#
Endpoints must use https:// with a public host name: no IP addresses, port 443 or 1024–65535. Bizisy resolves the host for every request and connects to the address it checked, so a DNS change can't point a delivery at a private network.
Something missing or wrong on this page? Write to hello@bizisy.com.