Auto-approval review model codex-auto-review intermittently rejected by Responses-Lite (unsupported_value, param: model) - approvals fail closed

Open
#34,976 2 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
38/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Quiet
Tech stack
rust, sqlite
Domain
api, backend, security

Research direction

Start with the read-only query against ~/.codex/logs_2.sqlite and the codex-auto-review entry in models_cache.json. Compare successful and failed Guardian dispatches, including remote compaction, across the affected dates and processes. Done means the reviewer requests no longer receive the Responses-Lite unsupported_value rejection and benign approved actions are not blocked by this failure.

Written by the indexing model from the issue text.

Description

app bug safety-check sandbox windows-os
What version of the Codex App are you using?

Codex Desktop 26.715.10079.0 (Windows), embedded CLI/core reports client_version 0.145.0 in models_cache.json. Signed in with a ChatGPT account.

What platform is your computer?

Windows 11 Home 10.0.26200

What issue are you seeing?

The automatic approval review (Guardian) intermittently fails with:

{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "code": "unsupported_value",
    "message": "This model is not supported when using X-OpenAI-Internal-Codex-Responses-Lite.",
    "param": "model"
  },
  "status": 400
}

When this happens the planned action (e.g. git commit, a read-only Invoke-WebRequest check, even codex doctor --help) is blocked fail-closed with:

This action was rejected due to unacceptable risk.
Reason: Automatic approval review failed: ...

This looks related to #31705 / #30422 (same error string) and #31607 (compaction), but the failing request here is not the user-selected model. Evidence from ~/.codex/logs_2.sqlite shows the failing turns are the dedicated reviewer model:

turn{... model=codex-auto-review codex.turn.reasoning_effort=low}:session_task.run:run_turn: Turn error: { ... "unsupported_value" ... "param": "model" }

The main session model (gpt-5.6-sol) never failed — every unsupported_value error in the log belongs to a model=codex-auto-review reviewer turn (or to the main turn quoting the reviewer failure). Two variants observed:

  1. Regular Guardian assessment sampling calls (majority of failures).
  2. The reviewer thread's remote compaction: Automatic approval review failed: Error running remote compact task: { ... unsupported_value ... } — same shape as #31607 but on the Guardian thread.
Why this looks server-side

From the local SQLite logs (logs table), Guardian activity ran daily from 2026-07-14 to 2026-07-23, but errors cluster on exactly two days:

date (UTC) guardian unsupported_value errors
2026-07-14 12
2026-07-15 … 07-22 0 (daily activity present)
2026-07-23 58

On 2026-07-23, success and failure are interleaved hour by hour — e.g. hour 10 UTC had ~46 reviewer dispatches with only 10 failures, while hours 01/02/06/15 UTC had zero failures. Two different app processes (different process_uuid) were affected the same way, so it is not a stale client instance.

The client appears to be doing what the server metadata tells it to: in models_cache.json, codex-auto-review (display name GPT-5.6-Terra) is defined with "use_responses_lite": true, so the client sends the reviewer request over the Lite path — and some fraction of the backend then rejects that very slug for Lite. This looks like an inconsistency between the model metadata service and the Responses-Lite gateway allowlist (possibly only on part of the fleet / during rollouts).

Impact
  • Benign, explicitly approved actions are blocked; the user must manually approve each one while the incident lasts.
  • Manual approval does not stop recurrence, because every subsequent action spawns a new Guardian call.
  • When the Guardian thread grows, the remote-compact variant adds token waste on top (cf. #31607).
What steps can reproduce the bug?
  1. Windows Codex Desktop, ChatGPT account, default auto-approval review enabled, any 5.6-family session model.
  2. Run a long agent session that triggers approval reviews repeatedly (e.g. repeated git commit / network verification commands).
  3. During an affected window, a fraction of Guardian calls fail with the 400 above and the actions are rejected.

Local log query used to extract the evidence:

sqlite3 -readonly ~/.codex/logs_2.sqlite "SELECT datetime(ts,'unixepoch'), substr(feedback_log_body,1,300) FROM logs WHERE feedback_log_body LIKE '%unsupported_value%' AND feedback_log_body LIKE '%codex-auto-review%' ORDER BY ts DESC;"

Happy to provide fuller (redacted) log excerpts if useful.

Dominant language
Rust
Stars
125k
Forks
19.5k
Avg merge
1m
Merged PRs (30d)
1k

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.

More from openai/codex

All issues in openai/codex

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.