Skip to content

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:

AttemptWhenSince the change
1at once—
21 minute after the previous oneabout 1 minutes
35 minutes after the previous oneabout 6 minutes
430 minutes after the previous oneabout 36 minutes
52 hours after the previous oneabout 2.6 hours
65 hours after the previous oneabout 7.6 hours
78 hours after the previous oneabout 15.6 hours
89 hours after the previous oneabout 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.

Developer docs