Skip to content

Execution lifecycle

An execution is one run of a workflow. It starts when a trigger fires or someone presses Run, moves through a few statuses, and ends in a final one. This page maps the journey.


The statuses

Status Label in the app Meaning
pending Pending The run is queued. No worker has picked it up yet.
running Running A worker is executing the nodes.
paused Paused Someone pressed Pause. The run waits at a node boundary until Resume.
waiting_for_input Waiting An Approval node or a Slack Wait for response is waiting for a person to decide.
waiting_for_human Needs you A Web Controller node handed the browser to a person and waits for them.
success Success Every node finished, or every failure was handled.
failed Failed A node failed and nothing handled it, or the run could not continue.
timeout Timed out The run was closed because nothing moved it forward. See Timed out.
stopped Stopped Someone pressed Stop.

success, failed, timeout and stopped are final. A run in one of these statuses never changes again. You can rerun it, which creates a new execution.


How a run moves

From To When
pending running A worker picks the run up.
running success The last node finishes.
running failed A node fails and the failure isn't handled.
running paused Someone presses Pause. Resume returns it to running.
running waiting_for_input The run waits for a decision. It returns to running when the decision arrives.
running waiting_for_human The run waits for a person. It returns to running when they hand it back.
pending, running, paused or waiting stopped Someone presses Stop.

The statuses in detail

Pending

The run is queued for a worker. This usually lasts well under a second.

If no worker is online, the editor shows a warning when you start the run: "No worker is running right now, so this run is queued and will start as soon as one comes back." The run stays queued until a worker returns. See Rerun, stop & pause.

Running

A worker walks the graph node by node, following the connections out of each node.

There is no time limit on a run, and no default time limit on a node. A node only has a deadline if you set Timeout (ms) in its Node Settings. Anything else runs until it returns or someone presses Stop. Stop interrupts the node in flight.

Paused

Someone pressed Pause. The node that is already running finishes. The run then waits before the next node until someone presses Resume or Stop.

Waiting

An Approval node or a Slack Wait for response step is waiting for a decision. No worker is busy while a run waits, so a waiting run can sit for days. When the decision arrives, the run continues from where it stopped. Data from nodes before the pause is still available to expressions.

An Approval node waits until someone decides or the run is stopped. For a wait with a real deadline, use Slack Wait for response. See Approval basics.

Needs you

A Web Controller node handed control of its browser to a person. The run continues when they hand it back.

Success

Every node finished. A node that failed but sent its failure down a connected error port counts as handled, so the run can still end as Success. The failed node stays red on the canvas.

Failed

A node failed and nothing handled it. The run stops at that node, and later nodes do not run. The execution records which node failed and the error message.

A node that hits its own Timeout (ms) shows as Failed, and the run ends as Failed.

A run also ends as Failed if the worker running it stops responding. Flero closes such a run within about three minutes with the message "The worker running this execution stopped responding … Nothing was re-run automatically. Use Rerun to run it again." Flero never re-runs it on its own, because some of its nodes may already have sent emails or written data.

Timed out

A queued or running run that no worker holds and that has not moved for a long time (24 hours by default) is closed as Timed out. This catches a run that no worker ever picked up. Paused and waiting runs are never closed this way.

Stopped

Someone pressed Stop. The node in flight is interrupted and no further nodes run. Stop works on pending, running, paused and waiting runs, even when no worker is online. See Rerun, stop & pause.


Node statuses

Each node in a run has its own status. You see it as the colour of the node on the canvas while a run is loaded, and in the timeline on the execution detail page.

Status Meaning
Running Executing now
Success Finished cleanly
Failed Failed, or hit its Timeout
Waiting Waiting for a decision
Stopped Interrupted by Stop
Skipped Not reached, for example on the branch of an If that was not taken

What is recorded

For every execution, Flero records:

  • The execution ID.
  • The workflow and the version that ran.
  • How it started: a live trigger or a manual run.
  • Start time, finish time and duration.
  • The final status, and the error message if it failed.
  • Each node's status, timings and output.
  • AI cost and token usage, when AI nodes ran.

You can browse all of this in Logs and on the execution detail page. How long executions are kept is set in Data & privacy.


Sandbox executions

A run made in sandbox mode goes through the same statuses. In the editor it appears under Sandbox Executions with a small "Sandbox" dot. Monitoring counts sandbox runs along with live ones.


Tips & gotchas

  • A long Pending usually means no worker is online, or every worker is busy. The run starts as soon as a worker is free.
  • Waiting is not stuck. A run waiting for a decision holds no worker. Decide it in Approvals, or press Stop in the editor.
  • Execution IDs are unique and never change. They are safe to paste into a ticket.
  • A failed run is never retried automatically. Use Rerun after you fix the cause.


Found something out of date? This page lives in the Flero docs content set.