Stripe, Zapier, Twilio, and GitHub webhooks have different timeout windows and failure modes. Here's exactly what to do when your automation stops responding โ by platform.
200 OK immediately on receipt โ process the event asynchronously via a job queue (SQS, BullMQ, Inngest).stripe.webhooks.constructEvent() before any DB work โ invalid signature โ return 400 fast.<Redirect> to point to a pre-cached static TwiML URL for instant response, then process async.| Platform | Timeout Window | Auto-Retry | Retry Window | Log Location |
|---|---|---|---|---|
| Stripe | 30 sec | Yes (3x) | 24 hours | Dashboard โ Webhooks |
| Zapier | 30 sec | Yes (queued) | 15 min | Zap History |
| Twilio Voice | 15 sec | Yes (3x) | 3 min | Console โ Monitor |
| Twilio SMS | 15 sec | Yes (3x) | 3 min | Console โ Monitor |
| GitHub | 10 sec | No | Manual redeliver | Repo Settings โ Webhooks |
| Shopify | 5 sec | Yes (19x) | 48 hours | Partners โ Webhooks |
stripe listen, gh webhook) for forwarding events to localhost during development.event.id, etc.) as a unique key โ store it in your DB and skip processing if already seen. Every major platform includes a unique event ID in the payload for this reason.Text PJ the platform + error message. Most webhook failures are diagnosed and fixed within one session.