> For the complete documentation index, see [llms.txt](https://docs.tryterra.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tryterra.co/faq/help-topics/webhook/failures-errors-and-retries/ack-fast-process-async-timeout.md).

# Why is my webhook returning 504 errors?

A 504 means your server did not respond within Terra's roughly 8-second delivery window.

The webhook is **not** disabled by these failures: Terra keeps attempting deliveries and any circuit breaker clears automatically on the next successful one. However, when an endpoint repeatedly times out, Terra throttles delivery of all non-auth event types to that destination until it stops timing out. Auth events bypass the throttle, and isolated non-timeout `5xx` responses do not trigger it.

**The fix is to acknowledge webhooks immediately:**

* Return `200` and process asynchronously via a background task or queue.
* And/or switch heavier flows to [ping mode](https://docs.tryterra.co/health-and-fitness-api/managing-user-health-data/receiving-data-updates) so payload size and processing time stop mattering.

To find the latency, replay a webhook body against your endpoint yourself and measure where the time goes.
