Codex enters self-reinforcing governance loops, ignores bounded scope, and exhausts usage without completing tasks
What version of Codex CLI is running?
codex-cli 0.120.0
What subscription do you have?
ChatGPT Pro
Which model were you using?
gpt-5.6-sol (high reasoning, fast mode, /goal)
What platform is your computer?
Microsoft Windows NT 10.0.26200.0 x64; WSL2 Linux 6.6.114.1-microsoft-standard-WSL2 x86_64
What terminal emulator and version are you using (if applicable)?
Codex Desktop on Windows with PowerShell and Ubuntu WSL2
Codex doctor report
not available: codex-cli 0.120.0 rejects codex doctor --json as an unexpected argument
What issue are you seeing?
Codex repeatedly expands a bounded engineering task into self-generated governance, evidence, review, credential, deployment, and recovery loops. The agent then validates infrastructure and contracts that it generated itself, treats those internal checks as progress, encounters contradictions between its own producers and validators, and spends very large amounts of usage repairing those contradictions instead of completing the requested product task.
This is not an isolated slow run. Across the uploaded thread, direct instructions such as “use these exact files,” “apply → check → fix if required → re-check → report,” “do not research or redesign,” and explicit 30–45 minute hard limits did not prevent scope expansion. The agent repeatedly opened additional issues and PRs, introduced or followed unnecessary lifecycle gates, retried blocked paths, performed broad repository/history inspection, and reported completion states that later proved operationally false.
Concrete impact observed:
- More than one month of work without one reliable end-to-end product task completing through the system.
- Four weekly-usage resets were consumed within one week.
- One recorded run consumed 633,788 tokens in about 57 minutes.
- Multiple review executions stalled for 30 minutes while producing no useful progress.
- The same model-generated system was allowed to review its own model-generated governance contracts, creating a self-confirming loop instead of an independent product validation boundary.
- Basic defects were missed despite extensive contract and review machinery, including fake/templated approvals, phase-ordering deadlocks, stale credentials, producer/validator drift, and CI claims that did not match exact-head CI.
- The user had to manually stop workflows, delete temporary Temporal namespaces, reset the sandbox, and remove agent access from the infrastructure repository.
The uploaded thread contains the complete chronology and evidence.
Thread ID: 019f8d1b-0ab0-7bd0-8f17-661e65be2974
What steps can reproduce the bug?
- Use Codex Desktop/CLI with gpt-5.6-sol, high reasoning, fast mode, and
/goalon a real repository. - Give a bounded implementation task with an exact file list, explicit non-goals, an apply/check/fix/report loop, and a hard time limit.
- Include repository governance instructions and canonical tools.
- Ask the agent to implement, validate, and finish the task without unrelated research or architecture work.
- Observe that the agent recursively expands the task into instruction-chain audits, evidence generation, credential reconciliation, reviewer orchestration, recovery, deployment, and additional issue/PR creation.
- When one self-generated gate conflicts with another, allow the goal to continue. The agent repeatedly audits the same blocker or creates another corrective task instead of converging on the requested result.
- Compare the agent’s claimed local validation/completion with exact-head CI and live behavior; several claims in the uploaded thread were later contradicted by failing CI or broken production paths.
This behavior reproduced across many tasks in the same uploaded thread, not a single prompt.
What is the expected behavior?
Codex must preserve the user’s explicit scope and termination boundary. For a bounded task it should perform the requested edit, run the minimum relevant deterministic checks, fix failures directly related to the change, and report the result.
It must not create new governance layers, issues, PRs, recovery paths, credentials, deployments, or review machinery unless explicitly authorized. Repeated identical blockers must terminate promptly with one concise report. Claims such as tests passed, approved, deployed, or complete must be tied to directly observed exact-head evidence. A model must not treat its own generated review text or contracts as independent validation.
Additional information
This feedback is about product-level agent behavior and orchestration, not a request for prompt advice. The user already supplied explicit scope, exact files, canonical commands, non-goals, hard time limits, and repeated stop instructions.
The central failure is that the product allowed an agent to turn a small engineering task into an unbounded self-referential control system, then spend the user’s quota debugging that control system. Prompt changes or additional memory files would move responsibility back to the user and would not address the failure mode.
The final corrective action in the project was to isolate all agent-driven development from the infrastructure repository, close all sandbox work without merging, remove agent access to infrastructure, and replace agent-authored validation workflows with deterministic internal or industry-standard tools.
Uploaded thread: 019f8d1b-0ab0-7bd0-8f17-661e65be2974
7 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Corroborating Windows/Pro case from July 23, 2026. This reproduced the same product-level failure pattern with a different concrete task.
The bounded P0 requirement was a visible local-agent loop in LM Studio: Qwen must read a repository, make a bounded edit, run a focused test, show Git status/diff and the result in the same visible conversation, while healthy integrations remain enabled and unrelated broken integrations are isolated.
Instead, the Codex run repeatedly expanded into governance, ledgers, receipts, proof prompts, status surfaces, integration-state manipulation, review scaffolding, and additional PR/issue work. One large private PR added roughly two thousand lines while explicitly excluding the live Qwen wiring and write-capable tools that defined the requested outcome. The run accumulated approximately 122 residual task records while the actual repository completion indicators barely moved.
Additional observed behavior:
This is not being reported as an external-app bug. The Codex defect is the same one described here: explicit bounded scope and terminal acceptance were subordinated to model-generated process, and the model's own artifacts were treated as progress or validation.
The strongest product safeguards would be:
Related context failure from the same session is tracked separately in #35032. Private repository names and paths are omitted, but the reporter has screenshots, PR history, and the full Codex thread.
Independent corroboration from the July 23 incident, with a concrete PR-level manifestation: the user repeatedly required an operative, visible local-agent read/edit/test/Git path and explicitly rejected proof prompts, backend-only output, and read-only substitutes. Codex produced a large PR of governance, routing, manifests, status surfaces, and tests while the PR itself excluded the live model wiring and write-capable tools that defined success. Progress/completion reporting still credited the surrounding scaffolding, and the missing operative path was discovered only during later review. This matches the self-reinforcing governance/scope-expansion failure here and adds a specific acceptance-gating requirement: a critical requirement cannot count toward completion when the PR or handoff says its production path is
not included. Related foreground-verification defect: #35041.I can reproduce the same failure family on a large, real multi-repository project using Codex Desktop on macOS. This is not just “overthinking”; the agent-generated governance layer became the dominant source of failures and prevented product E2E from starting.
Measured outcome
At the reporting point:
Concrete self-generated blocker sequence
The agent repeatedly added a validation or evidence mechanism, then a later formal attempt failed on a contradiction introduced by that mechanism:
/varand/private/varwere treated as different despite canonical filesystem identity. This was fixed once, but a later diagnostic-capture change introduced or missed another strict lexical comparison in a different consumer.Each local fix was defensible in isolation, but the system had no mechanism preventing the validation layer from continuously increasing the state space and defect surface.
Root product-level failure modes
Expected product behavior
This is a product/orchestration issue, not a request for prompt advice. The user repeatedly instructed the agent to stop adding audits/seals, continue independent E2E shards after ordinary failures, and minimize repeated validation. The agent acknowledged those instructions but repeatedly appended them to the existing governance trajectory instead of replacing it.
No proprietary source code, credentials, raw logs, repository URLs, or user identifiers are included in this report.
Corroborating case: explicit architecture and hard scope boundaries ignored across Sol and Terra
I have reproduced the same failure family on a real mapping application using both Sol and Terra, with normal bounded prompts and with
/goal.This was not a vague or open-ended task. I repeatedly supplied:
The required architecture was consistently stated as:
Despite repeatedly acknowledging this flow, the agents anchored on the existing legacy implementation and continued improving machinery that the stated architecture required them to bypass.
Examples included:
The recurring pattern was:
After being directly asked to analyse its own behavior, one agent admitted:
It also acknowledged that it should have treated the supplied flow as a strict allowlist and removed violating work from the runtime path rather than making that work faster.
Impact
/goal.This is not a request for prompting advice. The goals, diagrams, non-goals, prohibited files, architecture, termination boundary, and live acceptance path were supplied repeatedly and were correctly understood by the agents.
The product-level failure is that acknowledged user authority is being subordinated to the model’s interpretation of the existing repository and to self-generated implementation process.
I disabled memory generation and memories, then cleared memories.
It then created what I spent 4 days and 4 weekly resets on in 2 sessions with no issues.
zzzzz....
Additional reproducible evidence from Codex Desktop on Windows (2026-08-26):
This failure mode is not limited to task expansion and excessive tool use. It also produces epistemically unstable answers that require the user to fact-check the agent step by step.
Observed sequence:
Related behavioral symptoms in the same task:
Why this is product-level rather than a prompt-tuning request:
Expected safeguards:
Privacy:
No proprietary project details, credentials, personal paths, or private transcript content are included here. The full task can be supplied privately if maintainers provide an appropriate channel.