Windows: automatic retry after model-capacity error resumes turn but leaves Goal paused
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
What version of the Codex App are you using (From “About Codex” dialog)?
26.825.6671.0 (Windows package; running executable product version 151.0.7922.174)
What subscription do you have?
Not included; the issue concerns Goal lifecycle reconciliation after the built-in automatic retry succeeds.
What platform is your computer?
Microsoft Windows NT 10.0.26200.0 x64
What issue are you seeing?
When an active Goal encounters:
Selected model is at capacity. Please try a different model.
Codex starts its built-in automatic retry/backoff. The retry eventually succeeds and the task/turn resumes, but the Goal itself remains paused or stalled instead of being resumed with the turn.
This leaves the lifecycle layers inconsistent:
- the automatic retry has recovered the model request;
- the task can briefly continue;
- the associated Goal is still paused/stagnant;
- unattended Goal execution therefore does not continue normally.
The capacity error is recoverable, but recovery only restores the turn, not the Goal that owns the long-running work.
What steps can reproduce the bug?
- In Codex Desktop, start a long-running task with an active Goal.
- Continue until the selected model returns
Selected model is at capacity. Please try a different model. - Let Codex use its automatic retry/backoff; do not manually switch models or resume the Goal.
- Wait for the automatic retry to succeed and observe the task resume.
- Check the Goal lifecycle state and continued execution.
Actual result: the retry resumes the task/turn, but the Goal remains paused/stagnant and does not continue its autonomous loop.
What is the expected behavior?
When automatic retry successfully recovers a model-capacity failure, Codex should atomically restore the complete pre-error lifecycle state:
- resume the same turn/task;
- transition the associated Goal back to active;
- continue the Goal loop from its preserved context without manual intervention.
If Codex cannot safely resume the Goal, it should keep both the turn and Goal paused and show an explicit actionable reason, rather than partially resuming only the turn.
Additional information
This is narrower than the existing capacity reports:
- #32020 requested automatic retry when the selected model is at capacity. Automatic retry now works, but Goal state is not resumed with it.
- #41790 reports frequent capacity errors and retry backoff, but not the Goal lifecycle mismatch after a successful retry.
- #30630 documents inconsistencies in the Goal pause contract/lifecycle.
- #38177 reports the opposite reconciliation direction (a paused Goal leaving a turn active), suggesting Goal and turn lifecycle transitions need to be made atomic.
Suggested regression test:
active Goal + active turn
-> server_overloaded / model at capacity
-> automatic retry succeeds
-> same turn active
-> same Goal active
-> Goal loop continues without manual resume
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the automatic retry/backoff path and the Goal and turn lifecycle transitions described in the report. Add a regression test for an active Goal and turn recovering from a model-capacity error, and verify that both return to active state and the Goal loop continues without manual resume.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100