Surface availability. All three surfaces are live: the
failure-inspection API (
GET /api/v1/pipeline-runs/:id/dlq), the
inspectFlowError MCP tool, and the Errors tab in the Flow
Editor. The Errors tab — including the Fix with AI button described
below — is mounted in the editor’s tab bar (Visual, JSON IR, SQL Preview,
Lineage, Schedule, Runs, Errors), alongside a Runs tab that
lists recent runs with per-node metrics. Open a pipeline at
/data/flow-pipelines/[id]/edit and switch to the Errors tab.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 (re-running only the quarantined
rows via
POST /pipelines/:id/run): Phase 6.6 hardening. This flag is not implemented yet, and 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.