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

# Dead Letter Queue

> What happens after 4 failed delivery attempts

When Hookdrop cannot deliver an event to a [destination](/concepts/destinations) after repeated attempts, it moves the event to the dead letter queue. This keeps failed events visible and recoverable rather than silently discarding them.

## The retry schedule

When the initial delivery fails, Hookdrop automatically retries up to 4 more times using exponential backoff:

<Warning>
  After 4 retry attempts following the initial failure, Hookdrop stops trying automatically. The event moves to `dead_letter` status and you receive an email alert.
</Warning>

| Attempt         | Delay                        |
| --------------- | ---------------------------- |
| Initial attempt | Immediately on event capture |
| 1st retry       | 5 seconds after failure      |
| 2nd retry       | \~25 seconds after 1st retry |
| 3rd retry       | \~2 minutes after 2nd retry  |
| 4th retry       | \~10 minutes after 3rd retry |

A delivery is considered failed if your server returns a non-2xx response or does not respond within 10 seconds.

## What happens next

Once an event reaches `dead_letter` status:

1. **You receive an email alert** — Hookdrop notifies you so you can investigate without needing to monitor the dashboard constantly.
2. **The event stays in your dashboard** — it is never deleted. You can inspect the full payload, headers, and all delivery attempt logs to understand what went wrong.
3. **You can replay it** — once your server is back up and the issue is resolved, replay the event to re-enqueue it for delivery.

## Filtering for dead letter events

To see all dead letter events in the dashboard, filter by status `dead_letter`. Via the API:

```bash theme={null}
GET /api/endpoints/{id}/events?status=dead_letter
Authorization: Bearer TOKEN
```

You can combine this with other filters. For example, to find dead letter events from the past 24 hours:

```bash theme={null}
GET /api/endpoints/{id}/events?status=dead_letter&from=2026-04-04T00:00:00Z
Authorization: Bearer TOKEN
```

## Replaying a dead letter event

After you fix the issue on your server, replay the event from the dashboard or the API:

```bash theme={null}
POST /api/endpoints/{id}/events/{eventId}/replay
Authorization: Bearer TOKEN
```

<Tip>
  Replay moves the event back into the delivery queue with its original headers and body intact. If delivery succeeds, the event status updates to `delivered`.
</Tip>

## Preventing dead letter events

The most common cause of dead letter events is a server that is slow to respond. To reduce the risk:

* Return a `200 OK` immediately on receipt, then process the payload asynchronously.
* Make sure your server handles requests within the 10-second timeout window.
* Monitor the `failed` status in your dashboard — events that are failing but not yet dead lettered are still being retried.
