openai / openai/codex

[Codex App][Windows] Long-running task silently switches High reasoning to unsupported minimal

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

Nobody has claimed this yet.

app bug config session windows-os
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_context records.
  • 113 contexts with effort=high.
  • Exactly 3 contexts with effort=minimal; these are the three failed retries.
  • 38 thread_settings_applied events.
  • 33 settings events applied high.
  • The final 5 settings events before the failures applied minimal while an already-running High turn was executing.
  • Those five events appeared during tool execution (after exec tool events). The corresponding tool-call payloads contained no thinking, minimal, thread-message, thread-creation, or automation override.
  • Explicitly reapplying high produced subsequent thread_settings_applied events 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
  1. Open an existing long-running project task using GPT-5.6 Sol and High reasoning.
  2. Run a tool-heavy turn that includes compaction and multiple exec calls.
  3. The turn later reaches the account usage limit.
  4. After usage becomes available again, retry/continue the same task without changing model or reasoning settings.
  5. The app sends reasoning.effort=minimal; the request fails with HTTP 400.
  6. Repeating the retry produces the same failure.
  7. 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

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 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.