openai / openai/codex

Windows: automatic retry after model-capacity error resumes turn but leaves Goal paused

Open
#41,798 4 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app bug session windows-os
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?
  1. In Codex Desktop, start a long-running task with an active Goal.
  2. Continue until the selected model returns Selected model is at capacity. Please try a different model.
  3. Let Codex use its automatic retry/backoff; do not manually switch models or resume the Goal.
  4. Wait for the automatic retry to succeed and observe the task resume.
  5. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.