Skip to content
styrev0.11.0
GitHub

Recovering a run

A run that does not reach a pull request stops in one of three ways. They look similar from the outside and are recovered very differently, so it is worth knowing which one you have.

Exit State kept? How you continue
Parked — ran out of capacity 75 Yes, on disk styre run --resume
Escalated — wants a human 75 No Fix the cause, run again
Dead end — nothing left to try 1 No Fix the cause, run again

A run parks when something interrupts it that is not its fault: a session limit, or your provider account running out of credits. No retry attempt is consumed — parking is an interruption, not a failure.

The reason and the resume command are printed on stderr:

Parked: session limit reached (resets 2026-07-23T18:00:00Z).
Resume with: styre run --resume ENG-482 --profile ~/.config/styre/acme-app/profile.json
Dump: ~/.local/state/styre/acme-app/ENG-482

The dump holds the run’s record and the interrupted step’s partial output. Your committed work is not in there — it is already safe in the branch, in git.

Terminal window
styre run --resume ENG-482 --profile ~/.config/styre/acme-app/profile.json

Only the interrupted step runs again. Everything already finished stays finished.

If the branch head changed while the run was parked — you pushed a commit, or amended one — resume refuses rather than building on a base it does not recognise:

resume refused: branch HEAD moved since the parked attempt.

That is exit 65. Three ways forward, starting with the safe one:

Terminal window
styre run --resume ENG-482 --inspect

Shows what it would do and changes nothing.

Terminal window
styre run --resume ENG-482 --accept-head

Resumes against the new head, discarding the carried-over context from the interrupted step.

Terminal window
styre run ENG-482

Starts fresh, ignoring the park entirely.

An escalation means the loop tried, bounded its retries, and reached something it will not decide on its own. The reason is on stderr.

There is no --resume for an escalation. Your options are:

  1. Read the reason, then fix its cause — an acceptance criterion, a config value, the environment, or the code itself.
  2. Run the ticket again. A fresh run re-reads the ticket, so edits to your acceptance criteria take effect.
  3. Take the branch over by hand. It is an ordinary git branch with ordinary commits.

Grouped by what you would do about it.

Message What happened What to do
step '<name>' exhausted after 3 attempts One step failed three times. Read that step’s error. Retrying unchanged will not help.
no progress: '<name>' failed identically twice A check failed the same way twice running — the fix attempts are not changing anything. Usually a real defect the agent cannot see. Look at the failure yourself.
no progress: '<name>' under-delivered identically twice A work unit twice failed to touch the files its plan said it would. Often a plan built on the wrong files. Re-scope the ticket.

The acceptance checks could not be settled

Section titled “The acceptance checks could not be settled”
Message What happened What to do
no progress: AC-check(s) N still flagged after 2 re-authors The test for one of your criteria was rewritten twice and still is not sound. Almost always the criterion, not the code. Rewrite it — see Writing a ticket.
no progress: repeated re-author of the same AC-check The same check kept being rewritten without improving. As above.
gate: still red after 3 arbitrated rounds The acceptance tests stayed red across three rounds of adjudication. Check whether the criterion is achievable as written.
gate: check(s) still red at HEAD … no further HEAD movement possible The code stopped changing but the tests are still red, so nothing further can move it. The criterion and the implementation disagree. One of them has to give.
Message What happened What to do
no progress: identical review findings The reviewer raised the same blocking findings twice. Read the findings — the fix attempts are not landing.
no progress: identical plan-review findings The same, on the plan rather than the code. The plan needs your input before another run is worth it.
blocking plan-defect found in code review; operator policy is escalate Review found a problem with the plan itself, not the code. This is the default policy. Set onPlanDefect: "redesign" in config to loop back and re-plan instead.
deferrable major finding requires a human deferral decision Review found something significant and will not decide on its own whether to defer it. Yours to call: fix it, or accept it and move on.
Message What happened What to do
provision failed for ticket Installing dependencies failed. This escalates on the first failure, with no retries. Fix the environment — lockfile, toolchain, network. Nothing inside the loop can fix it.
step 'verify:checks-gate' failed: … The gate hit an infrastructure fault rather than a genuine red result. Usually environmental. Read the error, then re-run.
A projection failure Styre could not write back to Linear, Jira, GitHub or Slack after several attempts. The service is down, or your token is wrong. The run’s own work is unaffected.

Exit 1 means the run finished cleanly but could not go further — nothing advanced for three rounds, or it reached its overall iteration limit. It is not a crash. Read the summary, fix what it points at, and run again.

These stop a run before any work happens, and none of them is a failure of the loop:

Exit What it means Fix
65 Resume refused — the branch moved. --inspect, then --accept-head or a fresh run.
69 A program your build or test commands need is missing. Install it; the message names it.
78 Bad config, or an unusable profile. Fix the value, or re-run styre setup.

See Exit codes for the full table.