A node may stop the run successfully
Stopping is a deliberate early finish, not a failure. Everything the run had not yet done is abandoned, and the run reports success.
The rule
Normative: this is the rule
- A node may stop the whole run.
- The stop is not converted into an error output: the node broadcasts completed, its unit of work is recorded as completed and never as failed, the value the stop carries is recorded under the node's result key, all downstream and not-yet-started work is abandoned, and the run finishes with status completed.
What it means
A node that stops the run is not failing quietly — the run finishes with the
same status a run that executed everything normally reports. Everything
downstream of the stopping node, and anything else not yet started, simply
never happens: not marked failed, not marked skipped, not recorded at all. A
reader who expects a partially-executed run to say so somewhere is expecting
the wrong signal; completed here means the run ended deliberately, not
that every node ran.
Example
Three nodes in a line; the middle one stops the run.
["node_a", "node_b"]"completed"The third node never runs and never appears in the run's results.
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 · ERR-5 · changed in spec 1.0