Skip to main content

2026-04-04

Added: errors field on agent runs and webhooks

Agent run responses and webhook payloads now include an errors field that surfaces error messages from failed tasks, grouped by the template node that produced them. Run-level (GET /agent_run/{run_id} and RUN_FINISHED webhook):
"errors": [
  {
    "original_node_id": "2ba7b810-9dad-11d1-80b4-00c04fd430c8",
    "messages": ["FFmpeg render failed: output format not supported"]
  },
  {
    "original_node_id": "3ca7b810-9dad-11d1-80b4-00c04fd430c8",
    "messages": [
      "Audio transcription timed out after 300s",
      "Retry failed: service unavailable"
    ]
  }
]
Each entry links errors to the original_node_id (template node) so you can map failures back to specific nodes in your agent. Node-level (GET /agent_run/{run_id}/nodes and RUN_PROGRESS webhook updated_nodes[]):
"errors": ["Audio transcription timed out after 300s"]
Per-node errors is a flat string array since the node context is already provided by the parent object. Affected endpoints:
SurfaceFieldType
GET /agent_run/{run_id}errorsarray of { original_node_id, messages[] }
GET /agent_run/{run_id}/nodesnodes[].errorsstring[]
RUN_FINISHED webhookerrorsarray of { original_node_id, messages[] }
RUN_PROGRESS webhookupdated_nodes[].errorsstring[]
Previously, error details from processing tasks were only available internally. The status_message field on runs and nodes continues to work as before and is unaffected by this change.