FlowDrop Workflow Specification 1.0-draft

An error edge routes a failure instead of raising it

The rule

Normative: this is the rule
  1. An edge whose source handle ends with -output-error is an error edge.
  2. When a node that has one fails, the failure is routed rather than raised: the node's job is recorded as failed and marked as having been routed, the node yields an error payload of {message, code, node_id, retryable}, and the run continues along the error edge.

What it means

A failing step whose failure has somewhere to go does not raise it: the run continues down the error wire instead, carrying a payload built for that purpose rather than the step's own output. The step is still recorded as having failed — routing a failure is not the same outcome as the step succeeding — but that failure is marked as having been routed, so a resume does not treat it as the kind of failure that stops the run.

Example

A step named boom fails, and carries one outgoing wire from its error output:

The wire out of the failing step's error outputdeclared
{ "source": "boom", "source_handle": "boom-output-error", "target": "handler", "target_handle": "handler-input-input" }
The message in the error payload the run carries onwardrouted
"boom blew up"

The payload's node_id is boom; the step's job is recorded as failed and marked as routed, never as completed.

Without that wire, the same failure is never routed: it stops the run instead.

Rule identifiers are permanent and are never renumbered. Each implementation publishes its own standing against these rules; this specification does not.spec 1.0-draft · EDGE-6 · changed in spec 1.0