FlowDrop Workflow Specification 1.0-draft

Retryability is marked by presence, not by a boolean

The absence of the marker is load-bearing: the retry gate tests for the literal value true, so anything else (including an explicit false) means do not retry.

The rule

Normative: this is the rule
  1. An error output that came from a retryable failure carries error_retryable set to true.
  2. An error output from a non-retryable failure omits the key entirely rather than setting it to false.
  3. Retry applies only where the value is literally true.

What it means

Retryability is not a boolean field with a default; it is a key that either exists or does not. A retry gate that treats it like an ordinary flag — false as an authoritative "no", any truthy value as a "yes" — reads this backwards. The gate here checks the value against the literal true and nothing else, so writing false on purpose changes nothing: the failure still does not retry, exactly as an absent key does not.

Example

The same node failing twice, once in a way the runtime marks retryable and once in a way it does not.

A failure the runtime marks retryabletrue
{"error_retryable": true}
The same shape of failure, unmarkedabsent
{}
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-2 · changed in spec 1.0