What it surfaces
For the latest failed (orcompleted_with_errors) run:
- Failure summary — failed node id + the error message + run id + timestamp.
-
DLQ row sample — when the failed node is a
validatenode withquarantine.tableconfigured, the top 10 rows from that quarantine table for this run, with the rule id that caught each row. -
Fix-with-AI button — composes a structured prompt:
Then opens the AI Panel with the prompt prefilled in the input.
API
pipeline_runs.metadata.irVersion, finds the named validate node, and
queries its configured quarantine.table filtered by runId + nodeId.
Response shape:
residual message, never silent failure):
- Validate node has no
quarantine.tableconfigured → “failed rows are not persisted for this node” - Quarantine table doesn’t exist yet → “no rows ever failed for this node”
What’s not in 6.3
- Selective replay-from-DLQ runtime (the
replayDlqOnlyflag on POST /pipelines/:id/run): Phase 6.6 hardening. The Errors tab does NOT ship a fake button that does nothing. - DLQ for non-validate failures (source format errors land in
.failed/folder, not the DLQ table): Wave 4 polish.