Error paths

Route a node's failure to a recovery branch instead of killing the whole run.

To handle a node failing (API down, refund denied, missing permission), add an outbound edge with data.branch: "error" (or data.kind: "error") to a recovery node. On a throw, the engine routes there instead of failing the run.

  • The recovery node reads the message at ${error} (or ${error.message}).
  • data.continue_on_error: true swallows a node's own failure and continues.
  • With no error edge and no flag, a throw fails the run (the safe default).
Pattern: a refund http.request with an error edge to a human.handoff — so a failed refund pages a person instead of silently dying.