Webhook retry schedules, compared

Every provider answers four questions differently: how long do I get to respond, what counts as success, how many retries do I get, and when does it give up — or disable my endpoint entirely? The answers are scattered across eighteen sets of docs (and some of the numbers circulating in blog posts are stale). Here they are in one table, each row sourced from the provider's current documentation and cross-checked in our per-provider deep-dive guides.

ProviderDeadlineSuccess =Retry scheduleGives up / disables
GitHub10 s2xxNo automatic retries — manual Redeliver onlyeach delivery is one shot
Stripe—2xxbackoff for up to 3 days (live mode)dropped after 3 days
Shopify5 s2xxup to 8 retries over ~4 h, increasing intervalssubscription removed after continued failures within 24 h
WooCommerce—2xx, 301 or 302No retries — each failure just countssilently disabled after 5 consecutive failures
GitLab10 s (GitLab.com)not 4xx/5xx/timeoutNo automatic retries — manual resend onlytemp-disabled after 4 consecutive failures (1 min → 24 h backoff); permanent at 40 (17.11+)
Bitbucket10 snon-5xxup to 2 auto-resends, on 5xx only (X-Attempt-Number)dropped after attempt 3
Slack Events3 s2xx3 retries: ~immediately, +1 min, +5 min (x-slack-retry-num/-reason)app risks temporary disable below 5% success (apps under 1,000 events/h exempt)
Zoom3 s200–2992 retries: +20 min, then +60 min — 3xx/4xx never retrieddropped after retry 2
Meta (WhatsApp/Messenger/IG)—200exponential backoff, up to 7 daysdropped — no dead-letter queue, no replay
Twitch EventSub—2xxat-least-once; schedule undisclosed (Twitch-Eventsub-Message-Retry counts attempts)subscription revoked with notification_failures_exceeded
Discord Interactionssynchronousvalid responseNo retries — it's a request/response APIendpoint removed on sustained failures
Mailgun—200 (406 = permanent reject)+5 m, +10 m, +15 m, +1 h, +2 h, +4 h (~8 h total)dropped after; delivery-notification hooks aren't retried at all
Square—2xxexponential backoff up to 24 h (1 min, 2 min, …; square-retry-number/-reason)event discarded after 24 h
HubSpot5 s2xxup to 10 retries over 24 h, varying delays (retried on connection failure, timeout, any 4xx/5xx)dropped after 24 h
Svix (Clerk, Resend, Railway…)—2xximmediately, +5 s, +5 m, +30 m, +2 h, +5 h, +10 h, +10 h (same svix-id every attempt)marked failed after the schedule; dashboard replay
AWS SNS (HTTP/S)—2xxdefault numRetries: 3, ~20 s targets — only 5xx and 429 are retriedany other non-2xx discarded immediately; retry window hard-capped at 3,600 s
Notion—acknowledged (2xx)up to 8 retries, exponential backoff — final attempt ~24 h after the triggeraims for at-most-once delivery: after the schedule the event is gone; re-fetch state via the API
PayPal—200up to 25 retries over 3 daysmarked Failed; manual resend from the dashboard
Paddle5 s200 only, within 5 s (docs: any other status is retried — even 201)sandbox: 3 within 15 min; live: 60 within 3 days, exponential — 20 in the first hour (same event_id)marked failed; manual replay via dashboard/API for 90 days
Zendesk12 s2xxonly 409 is retried (3×); 429/503 only with retry-after < 60 s; timeouts 5×; other 4xx/5xx droppednever deactivated — but a circuit breaker (~70% errors in 5 min) can drop events entirely
Adyen10 s2xx (status code alone; the legacy [accepted] body is no longer required)9 s, 18 s, 27 s, then a per-endpoint queue at 2 m/5 m/10 m/15 m/30 m/1 h/2 h/4 h/8 h for up to 30 daysqueue is sequential — one stuck event delays everything behind it; alerts after 5 attempts and at 7 days; manual Retry/Ignore in the Customer Area
Patreonnot documentedsuccessful responseno public schedule — failed events are stored and queued; docs say later retries deliver all accumulated missed events once your server responds again, and the portal has a manual "send queued messages" buttonrepeated failures flip the webhook to paused: true (see num_consecutive_times_failed on the API webhook object); deliveries stop until you PATCH paused: "false", which also flushes the queue
Asana10 s2xxexponential backoff within a 24 h window (at-most-once, no replay)no success for 24 h (8-hourly heartbeats included) = webhook silently deleted; 410 = delete on purpose
Trello—2xx (410 deletes the webhook)3 retries: +30 s, +60 s, +120 s — then the delivery is gone (no replay API)auto-disable requires both 30 days of consecutive failures and 1,000+ failures (any success resets); token revocation kills the webhook silently at any time
Webflow“swift response” required (no documented number)exactly 200 — redirects count as failures, as do SSL problems and slow responses3 retries at 10-minute intervals — then the delivery is gone (no replay)repeated failure = webhook deactivated with an email; reactivation goes through Webflow support, not a dashboard toggle
Strava2 s200 within 2 sretried up to a total of 3 attempts (intervals undisclosed)event dropped after attempt 3 — no replay; subscription itself stays active (validation-time failure is a different beast: the subscription never gets created)

Patterns worth noticing

Don't trust the table — verify it

Numbers like these rot (Shopify's schedule was "19 retries over 48 hours" for years; the current docs say 8 over ~4 hours — plenty of blog posts still quote the old figure). The schedule your endpoint actually experiences is easy to observe directly: point the provider at a capture bin, set the bin's response status to 500, trigger one event, and read the retry timestamps off the dashboard. The step-by-step retry-testing guide covers forcing timeouts and 4xx-vs-5xx behaviour too.

No signup needed. Or from your terminal: curl https://hookden.pages.dev/new

← All guides · Signature debugger · Payload examples · Docs · Hookden vs webhook.site