[Codex App][Windows] Long-running task silently switches High reasoning to unsupported minimal
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
What version of Codex are you using?
- Bundled Codex CLI:
0.147.0-alpha.6.6 - Codex App version: not available from the local process metadata
- Platform: Microsoft Windows NT 10.0.26200.0 x64
What issue are you seeing?
An existing, long-running, non-voice Codex App task configured for gpt-5.6-sol with reasoning_effort=high was silently changed at the thread-settings layer to reasoning_effort=minimal.
The user did not configure minimal. The root Codex configuration remained valid and explicitly used high; no relevant configuration or agent-routing file contained a minimal value.
After the internal settings change, three consecutive retries sent reasoning.effort=minimal and failed before model execution:
Unsupported value: 'minimal' is not supported with the selected GPT-5.6 Sol model.
Supported values are: 'none', 'low', 'medium', 'high', 'xhigh', and 'max'.
Local evidence (redacted)
The affected rollout contains:
- 116
turn_contextrecords. - 113 contexts with
effort=high. - Exactly 3 contexts with
effort=minimal; these are the three failed retries. - 38
thread_settings_appliedevents. - 33 settings events applied
high. - The final 5 settings events before the failures applied
minimalwhile an already-running High turn was executing. - Those five events appeared during tool execution (after
exectool events). The corresponding tool-call payloads contained nothinking,minimal, thread-message, thread-creation, or automation override. - Explicitly reapplying
highproduced subsequentthread_settings_appliedevents with High and restored a valid turn.
No local paths, task IDs, account details, credentials, or full internal model snapshot identifiers are included here.
Steps that led to the failure
- Open an existing long-running project task using GPT-5.6 Sol and High reasoning.
- Run a tool-heavy turn that includes compaction and multiple
execcalls. - The turn later reaches the account usage limit.
- After usage becomes available again, retry/continue the same task without changing model or reasoning settings.
- The app sends
reasoning.effort=minimal; the request fails with HTTP 400. - Repeating the retry produces the same failure.
- Explicitly applying High restores the task.
The exact trigger for the five background thread_settings_applied(minimal) events is not yet known, but the rollout establishes that they were not derived from the root config or the adjacent tool-call payloads.
Expected behavior
- Preserve the task's explicit High reasoning setting across long turns, compaction, usage-limit recovery, and retries.
- Never apply a reasoning effort that the selected model does not advertise as supported.
- Validate or normalize task-level reasoning settings against model capabilities before sending a request.
Additional information
This appears related to #35534, but it affects a normal non-voice, long-running task rather than Voice Chat. The shared failure mode is that the Codex App can inject minimal for a model that rejects it.
Redacted event excerpts can be provided if maintainers need them.
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 thread_settings_applied events around long-running turns, compaction, usage-limit recovery, retries, and exec tool execution; no source files or tests are named. Reproduce the Windows scenario and identify how minimal is injected. Done means explicit high persists and unsupported reasoning values are validated before requests are sent.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100