Recover or cancel execution
Start by inspecting pyplines run info ID, run attempts ID, and the relevant logs. Determine both why the step stopped and what it may already have changed outside Pyplines.
Retry a blocked step
pyplines run retry 42 --step restart
Retry is permitted only for a settled blocked step. It re-prepares that step using current configuration and policy, retaining the earlier attempt. Successful steps are not replayed. New approvals may be required.
Review the Action's documented retry behavior and the external system's state first. A failed Action may already have performed part of its work. Retrying does not make a non-idempotent operation safe or undo its previous effects.
Skip a blocked step
pyplines run skip 42 --step restart --reason 'Service was restored through the incident procedure'
Skipping requires recovery access, policy permission, a reason, and settled execution. A skipped step has no outputs. If a later step requires those outputs, that later step can block; inspect the Definition before choosing this path.
Cancel a Run
pyplines run cancel 42
pyplines run status 42 --watch
Cancellation requests a stop and prevents further work. It does not undo completed external effects. A Run can remain cancelling while the server waits to establish that execution has stopped. The CLI watch exits unsuccessfully for a cancelled Run because cancellation is not successful workflow completion.
Handle uncertain execution
A lost runner heartbeat can leave an attempt uncertain. The container may still be executing. Ownership does not expire into reassignment, and retry or skip cannot proceed until execution settles.
Restore the original runner's connection and state so it can reconcile its container. Do not create a replacement Run as a way to bypass uncertainty. If the host is permanently lost, external fencing and a separately designed administrative recovery mechanism are required; the current release has no automatic or documented force-reassignment command.
Preserve evidence
Use run history to inspect decisions and run attempts to distinguish executions. Correcting a Definition and deploying it creates a new revision; it does not rewrite the blocked Run. Decide whether to recover that Run or settle it and intentionally start a new one.

