> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.scripe.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Endpoint disabled

# `endpoint_disabled`

| HTTP | When                                               |
| ---- | -------------------------------------------------- |
| 409  | **Reserved.** No endpoint returns this code today. |

This code is registered so the envelope contract and its `docs_url`
anchor stay stable, but no route currently emits it — a disabled
endpoint simply stops receiving deliveries, and the affected events are
recorded as permanently failed with an "Endpoint inactive" reason. Do
not write receiver logic that waits for this response.

An endpoint gets disabled in two ways:

* **Automatically**, and only after five *consecutive* permanently
  failed deliveries. `disabledReason` is free-form prose carrying the
  streak threshold, today
  `"repeated_failures (>= 5 consecutive deliveries)"`; the threshold is
  interpolated from the retry schedule, so match the
  `repeated_failures` prefix rather than the full string. A failed
  DNS/SSRF re-check counts as one failed attempt feeding that streak —
  it is not a disable trigger of its own.
* **Manually**, from the dashboard or `PATCH /v1/webhook-endpoints/{id}`
  with `isActive: false`.

To recover: fix your receiver (it must answer `2xx` within 10 seconds),
then re-enable the endpoint via
`PATCH /v1/webhook-endpoints/{endpointId}` with `isActive: true` or from
the dashboard. See [Webhooks § Delivery and retries](../webhooks.md#delivery-and-retries).
