Flow runs
A FlowRun is one execution of a Flow. Every time a flow runs - manually, on a schedule, or from a dry run in the editor - a new FlowRun row is recorded. Each run captures:- Status:
running,ok,aborted,failed, orcancelled. - Start and finish timestamps.
- Errors encountered during execution.
- Logs emitted by nodes, and a trace identifier.
- Persisted assigns: a snapshot of named values the flow chose to keep.
Triggering a run
Flows can be started in several ways:- Manually, from the flow editor. Manual runs are enqueued with higher priority than scheduled runs so an operator’s ad-hoc execution jumps ahead of pending scheduled work.
- On a schedule. A flow can carry several schedules, each with its own cron expression and enabled flag. When a schedule is enabled, the Flow Scheduler enqueues a run each time that schedule’s cron expression matches. Each schedule can seed different preset values, so one flow can run more than once with different parameters. See Scheduling and observability.
- As a dry run, from the editor’s Evaluator pane. Dry runs substitute stub values for each assign declared by the graph and skip the actual step invocations. They are useful for validating that the graph is wired correctly without hitting source systems.
Cancelling a running flow
A running flow can be cancelled from the editor. Cancellation sends a signal to the running evaluator, which checks for the signal between nodes and finalises the FlowRun with statuscancelled. Cancellation is cooperative - a step that is currently blocked on an external call keeps running until that call returns, after which the evaluator picks up the signal and stops.
Cancellation is distinct from a flow aborting itself. See Execution and error handling for the difference between user-initiated cancellation, abort_flow, and the on_error policies.