Testing webhook retries

Guides / Replay Lab

When your endpoint returns an error or takes too long, the provider sends the event again later. Stripe retries for up to three days. GitHub doesn't retry automatically. Shopify retries 8 times over 4 hours. Your handler has to cope with the same event arriving after a delay, sometimes after it partly processed the first one.

Simulate a retry

hwcli replay evt_93df18ab --target :8080/webhooks                 # first delivery
hwcli replay evt_93df18ab --delay 30s --target :8080/webhooks     # the retry

Check the same things as for duplicates: the work happens once, and the retry gets a 2xx so the provider stops.

Timeouts

Most providers wait 10 to 30 seconds for a response. A handler that does slow work before answering times out, so the provider retries while the first attempt is still running. Every replay records your handler's response time. If it's near the provider's limit, acknowledge first and do the work in a background job.

HookWatcher's own retries

When HookWatcher forwards to your server, it retries failed deliveries on its own schedule (see automatic retry). Every attempt is listed on the event's Attempts tab with its status, response and time.

Create an endpoint and capture your first webhook. No signup needed.

Start Free