GET /api/v1/pipelines//runs//progress
Returns detailed progress information for a pipeline run including row counts, partition details, ETA, validation errors (first 20), and log entries.
Path Parameters
| Parameter | Type | Description |
|---|
id | string | Pipeline ID |
runId | string | Pipeline run ID |
Response
Response Fields
| Field | Type | Description |
|---|
status | string | pending, running, completed, failed, completed_with_errors |
totalRows | integer | Total rows to process (rowsTotal) |
processedRows | integer | Rows processed so far (rowsProcessed) |
failedRows | integer | Rows that failed validation |
skippedRows | integer | Rows skipped (e.g., duplicates) |
partitions | integer | Total partition count |
completedPartitions | integer | Partitions finished |
partitionDetails | array | Per-partition status breakdown |
validationErrors | array | First 20 validation errors (use the errors endpoint for full list) |
eta | string or null | Estimated time remaining (e.g., "3m", "1.2h") |
durationMs | integer | Elapsed time in milliseconds |
loadStrategy | string | Load strategy used (append, upsert, replace) |
log | array | Execution log entries |
Roles
admin, editor, viewer
GET /api/v1/pipelines//runs//errors
Returns all validation errors for a pipeline run. Supports both JSON and CSV formats via the Accept header.
Path Parameters
| Parameter | Type | Description |
|---|
id | string | Pipeline ID |
runId | string | Pipeline run ID |
| Header | Value | Description |
|---|
Accept | application/json | Returns JSON (default) |
Accept | text/csv | Returns downloadable CSV file |
Response (JSON)
Response (CSV)
When Accept: text/csv is set, returns a downloadable CSV file with headers: Row, Column, Value, Error.
Roles
admin, editor, viewer
POST /api/v1/pipelines//runs//retry
Deprecated — always returns 410 Gone. The legacy resume-from-checkpoint
retry was removed on 2026-04-28 along with the BullMQ worker path. IR-native
runs are short in-process executions that are idempotent at the row level (via
_kaireon_lineage), so there is nothing to resume. To re-run a pipeline, call
POST /api/v1/pipelines/{id}/run again.
Path Parameters
| Parameter | Type | Description |
|---|
id | string | Pipeline ID |
runId | string | Original run ID |
Response (410)
Roles
admin, editor (the role gate is still enforced before the 410 is returned).
GET /api/v1/pipeline-runs//dlq
Return the failed-row (dead-letter queue) sample written by a validate node for a
specific run. Powers the Errors tab and the “Fix with AI” prompt. Note the path is
/pipeline-runs/{id}/dlq — {id} is the run id, not the pipeline id.
Path Parameters
| Parameter | Type | Description |
|---|
id | string | Pipeline run ID |
Query Parameters
| Parameter | Type | Default | Description |
|---|
node | string | — | Required. The validate node id whose quarantine rows to read. |
limit | integer | 50 | Max rows to return (clamped to 1–1000). |
Response 200
When the validate node has no quarantine.table, or the quarantine table was never
created (no rows ever failed), the endpoint still returns 200 with count: 0,
rows: [], and a residual message explaining why.
Error Codes
| Code | Reason |
|---|
400 | Missing/invalid node param, the referenced node is not a validate node, the run has no metadata.irVersion, or the quarantine table identifier is unsafe |
404 | Run not found, IR version not found, or node is not present in that IR version |
Roles
admin, editor, viewer
Role Summary
| Endpoint | Method | Allowed Roles |
|---|
/pipelines/{id}/runs/{runId}/progress | GET | admin, editor, viewer |
/pipelines/{id}/runs/{runId}/errors | GET | admin, editor, viewer |
/pipelines/{id}/runs/{runId}/retry | POST | admin, editor (deprecated → 410) |
/pipeline-runs/{id}/dlq | GET | admin, editor, viewer |
See also: Pipelines | Data Platform