Skip to content
Error

Webhook timeout: why it happens and how to fix it

A timeout means your handler took too long and the provider stopped waiting. The fix is almost always to acknowledge fast and process async.

A webhook timeout means your endpoint did not return 200 before the provider’s deadline (often just a few seconds). The provider gives up, marks the delivery failed, and retries later — even though your handler may have finished the work moments after.

Why it happens

  • The handler does the real work inline — writing to the database, calling other APIs, sending email — before responding.
  • A slow or hanging downstream dependency blocks the response.
  • Cold starts on serverless platforms push the first response past the deadline.

The fix: acknowledge fast, process async

Do the minimum to accept the event — verify the signature, persist the raw payload — then return 2xx immediately and process the rest in a background job or queue. The provider only needs to know you received it.

Confirm it in HookWatch

A timed-out delivery shows no response status (the connection was cut), with timing on each attempt. That timing tells a slow handler from a dead one. See how to debug a failed webhook and webhook debugging.

Get started

Start debugging your webhooks.

Point one endpoint at HookWatch, capture a failure, and replay it once it’s fixed. Free during beta.