FlowDrop Workflow Specification 1.0-draft

Exceeding the iteration budget ends the run, it does not pause it

The rule

Normative: this is the rule
  1. A state update that would push the run's iteration count strictly past the configured maximum ends the run.
  2. The budget's own last iteration is allowed; only exceeding it ends the run.
  3. The run then reports status max_iterations_exceeded with no results, together with the configured maximum, the count reached, and the node that reached it.
  4. This is a terminal verdict and not a pause: no resume handle is offered, and the status is never paused.

What it means

Reaching the configured maximum is allowed; only going past it ends the run. A caller who sets the budget expecting the last permitted iteration to still happen is right — the guard only trips on the update that would push the count strictly beyond the maximum.

Where it does trip, the run does not pause. Nothing about the verdict looks like the pause a run takes to wait on an interrupt or a deferred step: no resume handle is offered, and the status reported is never paused. The response carries no partial results, only the terminal status together with the maximum that was configured, the count actually reached, and which node's update reached it.

Example

A run configured with a maximum of 5, whose current node pushes the count to 999:

What the run reportsterminal
{
  "status": "max_iterations_exceeded",
  "results": [],
  "metadata": { "max_iterations": 5, "current_iterations": 999, "node_id": "loop_node" }
}
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 · SG-14 · changed in spec 1.0