pub enum RunState {
Scheduled,
Ready,
Leased,
Running,
RetryWait,
Suspended,
Completed,
Failed,
Canceled,
}Expand description
Canonical states in the run lifecycle.
States progress forward through: Scheduled -> Ready -> Leased -> Running -> (RetryWait -> Ready)* or -> Terminal A running attempt may also be preempted to Suspended (e.g. by budget exhaustion), then resumed back to Ready when capacity is restored. Cancellation is also allowed from Scheduled, Ready, Leased, Running, RetryWait, and Suspended -> Canceled. Terminal states (Completed, Failed, Canceled) are immutable and cannot transition to any other state.
Variants§
Scheduled
The run is scheduled and waiting to become ready. Transitions: -> Ready (when scheduled_at has passed), -> Canceled
Ready
The run is ready to be leased/ picked up by an executor. Transitions: -> Leased (when leased), -> Canceled
Leased
The run has been leased to an executor for processing. Transitions: -> Running (when execution starts), -> Ready (lease expired), -> Canceled
Running
The run is currently being executed. Transitions: -> RetryWait (on failure, if retries remain), -> Suspended (preempted), -> Completed (on success), -> Failed (on failure, no retries), -> Canceled
RetryWait
The run failed and is waiting before retry. Transitions: -> Ready (when backoff completes), -> Failed (if no more retries remain), -> Canceled
Suspended
The run has been preempted (e.g. budget exhaustion) and is waiting for resumption. Non-terminal — will resume to Ready when capacity is restored. Suspended attempts do not count toward the max_attempts retry cap. Transitions: -> Ready (when budget replenished / explicit resume), -> Canceled
Completed
The run completed successfully. Terminal state - no further transitions allowed.
Failed
The run failed after all retries were exhausted. Terminal state - no further transitions allowed.
Canceled
The run was canceled. Terminal state - no further transitions allowed.