Dead Letter Queue & Auto-Replay
When an event exhausts all retry attempts, it moves to the Dead Letter Queue (DLQ). From there you can inspect failures, replay individual events, bulk-retry, or configure automatic replay after a cooldown.
How events reach the DLQ
An event enters the DLQ when all delivery attempts (initial + configured retries) fail. The event's status changes to FAILED and it appears in the DLQ section of the dashboard.
maxRetries: 0 go to the DLQ after the first failed delivery attempt.Viewing DLQ events
Navigate to the webhook detail page and filter events by status FAILED to see all DLQ events. Each entry shows:
- Event ID and timestamp
- Number of delivery attempts made
- Last error message and HTTP status code
- Full request/response details for each attempt
- Original payload
Manual replay
Replay a single failed event to re-attempt delivery:
POST /api/events/:id/retry
{
"message": "Event queued for retry",
"eventId": "664a1f2e8b1c4a001f2d0001",
"status": "PENDING"
}The event is re-enqueued with the webhook's current retry policy. Its status changes from FAILED back to PENDING.
Bulk replay
Replay multiple failed events at once from the dashboard. Select the events you want to retry and click Bulk Retry. All selected events are re-enqueued in parallel.
Filter events by FAILED status
Open the webhook detail page and set the status filter to FAILED.
Select events
Use the checkboxes to select individual events, or use Select All to pick all visible events.
Click Bulk Retry
All selected events are re-enqueued. Their status changes to PENDING.
Auto-replay
Auto-replay automatically retries DLQ events after a configurable cooldown period. This is useful for transient downstream failures where the target service typically recovers within a known window.
| Field | Type | Description |
|---|---|---|
| autoReplay.enabled | boolean | Enable automatic DLQ retry |
| autoReplay.cooldownMinutes | number | Minutes to wait before auto-retrying a DLQ event |
| autoReplay.maxAttempts | number | Maximum number of auto-replay attempts per event |
Configure via API
PATCH /api/webhooks/:id
{
"autoReplay": {
"enabled": true,
"cooldownMinutes": 30,
"maxAttempts": 3
}
}maxAttempts limit to avoid exhausting your quota on persistently failing events.