OutlabsTaskq
Operations

Redrive and dead letters

Failed jobs, lineage, and operator redrive.

failed rows are the dead-letter set. They stay hot for inspection via queue retention settings.

Use observer credentials to inspect taskq.dead_jobs, then an operator connection to perform the bounded action (or use the HTTP operator surface when mounted):

-- Observer connection: choose a bounded set of failed jobs.
SELECT id, queue, job_type, outcome, finished_at
FROM taskq.dead_jobs
WHERE queue = 'mail'
ORDER BY finished_at DESC
LIMIT 50;

-- Operator connection: redrive at most 50 failed jobs from one queue.
SELECT * FROM taskq.redrive_failed('mail', 50, 'operator:admin');

-- Or redrive one ID selected by the observer connection.
SELECT taskq.redrive_job('00000000-0000-0000-0000-000000000000'::uuid, 'operator:admin');

Redrive resets budgets and returns the job to queued. If another active job already holds the same idempotency key, redrive fails with TQ409.

Prefer taskq.redrive_job / bounded bulk redrive over hand UPDATEs on taskq.jobs.