Dead Letter Queue

DLQ flow, manual retry, and bulk retry for permanently failed events.

The dead letter queue holds events that exhausted every retry attempt. Instead of silently dropping them, hookstream flags them as permanently failed so you can inspect and retry on your own schedule.

How an event reaches the DLQ

1

Delivery fails

A delivery attempt returns a non-2xx status or throws a network error.

2

Retries are scheduled

The DeliveryScheduler schedules the next attempt based on the destination's retry policy.

3

Max attempts hit

Once the attempt count reaches retry_max_attempts, the delivery is marked as DLQ: is_dlq = true and dlq_at is stamped.

4

An issue is opened

Hookstream opens or updates an issue grouping the failure with similar ones so you can triage in batches.

Inspect DLQ events

Filter failed events anywhere you can filter events:

curl "https://hookstream.io/v1/events?status=failed" \
  -H "X-API-Key: $HOOKSTREAM_API_KEY"

You can also open the Events page in the dashboard and set Status = Failed, or jump straight to the Issues page where related failures are already grouped.

Every failed event keeps its full history — status codes, latency, response headers, and error messages for each attempt.

Retry DLQ events

curl -X POST https://hookstream.io/v1/events/evt_abc/retry \
  -H "X-API-Key: $HOOKSTREAM_API_KEY"

Retries create new delivery attempts. The originals are preserved for audit, so your history stays intact.

Check the destination's circuit breaker before mass retrying. If the endpoint is still down, every retry just fails again and re-opens the breaker.

Best practices

  • Alert on DLQ growth. Create a dlq alert rule so you notice before your customers do.
  • Use the Issues page for bulk work. One POST /v1/issues/:id/retry handles every event in a group.
  • Look at error breakdown in Metrics. Clusters of identical errors usually point at one fix that clears the whole queue.
  • Tune retries for flaky destinations. If a destination reliably recovers within hours, extend retry_intervals so retries outlive transient outages.

Next Steps

Retry Strategies

Control how long an event retries before hitting the DLQ.

Learn More
Events API

Programmatic access to events and delivery attempts.

Learn More
Ask a question... ⌘I