Goal mode cannot increase its token budget and resume after becoming budget_limited
What variant of Codex are you using?
Codex App / Goal mode (/goal). This likely also affects other clients that use the same thread-goal runtime.
What issue are you seeing?
When a Goal reaches its configured token budget, it enters the budget_limited state and stops substantive work. There does not appear to be a reliable user-facing way to increase that Goal's token budget and resume the same Goal.
Asking Codex to “increase the Goal budget”, “add more tokens”, or “continue with a larger budget” does not reliably update the persisted Goal. The existing Goal remains budget_limited, and the user may be forced to clear the Goal, create a new one, or manually continue outside Goal mode.
This is specifically about the per-Goal token budget, not the user's ChatGPT/Codex subscription quota or rate limit.
Steps to reproduce
- Start a Goal with an explicit token budget, or open a thread whose active Goal already has a finite
token_budget. - Let the Goal consume that budget.
- Observe that the Goal becomes
budget_limitedand automatic continuation stops. - Ask Codex to increase or extend the Goal budget and resume the same objective.
- Observe that there is no clear command or desktop UI for changing the persisted budget, and the Goal does not reliably return to
activewith the larger budget.
Expected behavior
Users should be able to extend an existing Goal without losing its objective, progress, or history. For example, Codex could support one or more of:
/goal budget 400000— set a new total token budget;/goal budget +200000— add an incremental allowance;- an Increase budget and resume action when a Goal becomes
budget_limited; - an app-server / agent API that atomically updates
token_budgetand changes the status frombudget_limitedback toactive.
The UI should show:
- tokens already used;
- previous and new total budget;
- the source of the budget change;
- confirmation that the same Goal has resumed.
Increasing the budget should preserve tokens_used; it should not reset accounting or silently create a different Goal.
Actual behavior
Once the Goal is budget_limited, the budget behaves like an immutable terminal limit from the user's perspective. Resume alone is insufficient because the persisted budget has already been exhausted, while clearing/recreating the Goal loses the existing Goal lifecycle and progress tracking.
Why this matters
Long-running coding and research tasks are difficult to estimate in advance. A budget should act as a controllable safety boundary, not permanently strand the Goal when the user explicitly approves more work.
This is also important for budgets that were set accidentally or inferred too conservatively. The previously closed issue #24629 addressed Goals assigning an unrequested token budget, and its original suggested fixes included allowing users to clear or extend an accidental budget. That issue was closed after strengthening the prompt against unsolicited budgets, but the separate recovery path—extending an existing budget-limited Goal—still needs a first-class UX.
Suggested safety behavior
- Require explicit user confirmation before increasing a Goal budget.
- Clearly distinguish Goal-local token budget from account usage limits.
- Refuse to resume if the account itself is usage-limited, while preserving the updated Goal budget for later.
- Record budget changes in the Goal history for auditability.