StripeRedisRabbitMQAmazon SQSApache Kafka

Webhook delivery failures from exceeding 3-second response timeout

critical
performanceUpdated Feb 23, 2026(via Exa)
How to detect:

Stripe marks webhook deliveries as failed when endpoint does not return 2xx status within 3 seconds. After retry exhaustion, webhooks are dropped, causing data inconsistency (e.g., Stripe records payment succeeded but application database shows unpaid). Root causes include synchronous processing of heavy operations (PDF generation, email sending, resource provisioning), database deadlocks from concurrent webhooks, or third-party API latency.

Recommended action:

Decouple webhook ingestion from processing: (1) Verify Stripe-Signature header cryptographically, (2) Push raw JSON payload to message broker (Redis, SQS, RabbitMQ, Kafka), (3) Return HTTP 200 OK within 50ms, (4) Process business logic asynchronously via background workers (Celery, Sidekiq, BullMQ).