Using the Dead Letter Queue
The dead-letter queue (DLQ) holds jobs that have exhausted all retry attempts. It gives you a chance to inspect what went wrong, fix the issue, and replay the jobs.
When jobs land in the DLQ
A job is moved to the DLQ when:
- The job fails (HTTP error, timeout, assertion failure, etc.)
- The queue has retries enabled
- All retry attempts are exhausted (default: 3 retries)
- The job is marked with
final_status: dead_letteredand adead_lettered_attimestamp
If retries are disabled on the queue, failed jobs are marked as failed_no_retries and do not enter the DLQ.
Viewing the DLQ
- Navigate to Dead Letter Queue in the sidebar
- The DLQ shows all dead-lettered jobs across all queues
- Filter by queue or search by URL
- Each entry shows the job URL, queue, failure reason, attempt count, and when it was dead-lettered
Replaying a job
Replaying creates a brand-new job with the same configuration (URL, method, headers, payload) and attempt_number: 1. The new job is dispatched immediately.
Single replay
- Find the job in the DLQ
- Click Replay
Bulk replay
- Select multiple jobs using the checkboxes
- Click Bulk Replay
Purging jobs
Purging permanently deletes a dead-lettered job and its run history.
Single purge
- Find the job in the DLQ
- Click Purge
Bulk purge
- Select multiple jobs using the checkboxes
- Click Bulk Purge
Automatic cleanup
Dead-lettered jobs are automatically deleted after the queue’s dlq_retention_days:
| Retention | Description |
|---|---|
| 3 days | Aggressive cleanup |
| 7 days | Short retention |
| 14 days (default) | Standard retention |
| 30 days | Extended retention |
The cleanup runs daily. Configure retention per queue from Queues > [queue] > Edit.
DLQ workflow
A typical workflow for handling dead-lettered jobs:
- Investigate: Check the failure reason and run details. Is the endpoint down? Is it returning errors?
- Fix the root cause: Deploy a fix to your endpoint, update credentials, fix DNS, etc.
- Replay: Once the root cause is fixed, replay the dead-lettered jobs
- Monitor: Check that the replayed jobs succeed
- Purge: Clean up any jobs that are no longer relevant
Next steps
- Jobs — Understand the full job lifecycle and retry chain
- Queues — Configure retry delays and DLQ retention
- Retry Strategy Design — Choose the right retry configuration