Monitor Runs
Follow current execution
Use your Run ID in place of 42:
pyplines run list --environment production
pyplines run status 42 --watch
pyplines run info 42
status summarizes progress; info includes available inputs, outputs, images, errors, and invocation details. Global --json goes before the command: pyplines --json run info 42.
Understand the Run state
| State | Meaning and next action |
|---|---|
preparing | The server is resolving inputs and checking requirements. |
awaiting_approval | A prepared step needs eligible approvals. Inspect it before approving. |
queued | Work is waiting for the Environment, runner connectivity, capacity, or container startup. Read the diagnostic. |
running | Container execution has been observed. |
blocked | A step cannot proceed, including after an Action failure. Investigate before recovery. |
uncertain | The server cannot establish that execution has stopped. Restore the owning runner's connectivity. |
cancelling | Stop has been requested but execution has not yet settled. |
cancelled | The Run has stopped. Prior external effects remain. |
succeeded | The workflow has completed successfully. |
Only cancelled and succeeded are terminal. A failed Action blocks its Run; the overall Run does not use a separate failed terminal state.
Run duration includes waiting and approvals. Step duration measures the latest attempt's observed container execution. Unknown historical timing displays -.
Inspect attempts, history, and logs
pyplines run attempts 42
pyplines run history 42
pyplines run logs 42 inspect
# Replace INVOCATION_ID with an invocation from the attempts response.
pyplines run logs 42 inspect --attempt INVOCATION_ID
Use the actual step name in place of inspect. Attempts retain invocation identity, runner, outcome, exit code, and timing. History records events and decisions. After a retry, select the earlier invocation to investigate its output.
Logs are bounded and may be truncated. Private steps suppress logs and withhold results from ordinary reads. Use attempt state and recorded errors to distinguish a private result from missing execution.
When a Run is waiting
Read the Run diagnostic first. One Environment executes one Run's attempt at a time, so another Run may legitimately hold its execution slot. An administrator can use pyplines runner list to inspect connectivity and admission. After a server restart, connectivity is unknown until the next runner heartbeat.
A CLI wait timeout does not cancel execution. Reconnect with run status ID --watch rather than starting duplicate work. Continue with approvals, recovery, or troubleshooting.

