API reference / Failed messages (DLQ)

Failed messages (DLQ) scope: manage · reads: read

Browse dead letters grouped by error signature, redrive them back to the queue, or discard them for good.
GET/v1/subscriptions/{sub}/dlqBrowse dead letters, grouped by error signature
Query parameters
projectProject the name is scoped to. Omitted = "default". Ignored for project API keys — their project is enforced server-side.
Response · 200
{ "total": 41,
  "groups": [ { "error": "downstream 500", "count": 39, "example": "msg_…" } ],
  "entries": [ {
    "delivery_id": "dlv_…", "message_id": "msg_…", "key": "tenant_7",
    "offset": 12, "attempts": 5, "error": "downstream 500",
    "dead_at": "2026-08-31T09:00:00.000Z",
    "payload_preview": "{\"order_id\":812}"
  } ] }
Errors
404no subscription named {sub} in project {project}
POST/v1/subscriptions/{sub}/dlq/redriveSend dead letters back to the queue (internally rate-limited)
Query parameters
projectProject the name is scoped to. Omitted = "default". Ignored for project API keys — their project is enforced server-side.
Request body
{ "all": true }
// or one error group:      { "error": "downstream 500" }
// or specific messages:    { "message_ids": ["msg_…"] }
Response · 200
{ "subscription": "payments/billing-worker", "redriven": 39 }
Errors
400pass message_ids, an error group, or all: true
404no subscription named {sub} in project {project}
DELETE/v1/subscriptions/{sub}/dlq/{id}Discard one dead letter for good (delivery or message id)
Query parameters
projectProject the name is scoped to. Omitted = "default". Ignored for project API keys — their project is enforced server-side.
Response · 200
{ "discarded": "dlv_…" }
Errors
404no dead-lettered delivery with that id
SubscriptionsAll topicsIntrospection