Cross-thread message silently changes receiver model and reasoning effort
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
Research direction
Start with the app-server turn/start and send_message_to_thread entry points, then trace handling of the incoming codex_delegation in the receiver. Use the reproduction steps and sanitized receiver rollout lines 58738, 58742, 58749, 58750, and 58752. Done means the receiver keeps its own model and reasoning effort after cross-thread reports.
Written by the indexing model from the issue text.
Description
Codex Desktop bug: cross-thread message changes receiver model
Summary
When a background Codex task configured as gpt-5.6-terra / medium sends a
delegation/report to a foreground task configured as gpt-5.6-sol / high, the
foreground task is silently changed to gpt-5.6-terra / medium after handling
the incoming report.
This is a cross-thread settings leak. The receiver did not request a model
change.
Environment
- Surface: Codex Desktop on Windows
- Codex CLI/app-server version recorded in session metadata:
0.144.0-alpha.4 - Receiver thread:
****** - Receiver intended setting:
gpt-5.6-sol / high - Sender setting:
gpt-5.6-terra / medium
Minimal observed sequence
2026-07-21T10:31:16.492Z: receiver log records
thread_settings_appliedwithgpt-5.6-sol / high.2026-07-21T10:31:16.567Z: receiver accepts an incoming
<codex_delegation>from thread
******.- Receiver completes that turn normally.
2026-07-21T10:32:29.403Zand10:32:32.033Z: without a user model
selection, receiver log recordsthread_settings_appliedwith
gpt-5.6-terra / medium.- The next turn receives a developer
<model_switch>message.
Expected behavior
The destination/background thread may use its own model override. Receiving a
message from that thread must not mutate the foreground/receiver thread's model
or reasoning effort.
Actual behavior
The source thread's terra / medium setting is applied to the receiver.
Relevant product contract
The Codex app-server manual states that optional fields on turn/start
override the model for the target threadId. The send_message_to_thread
tool also says to omit model/thinking to retain the target thread's settings.
Neither contract permits changing the sender or receiver of a separate
cross-thread report.
Reproduction
- Open foreground thread A with
gpt-5.6-sol / high. - Open background thread B with
gpt-5.6-terra / medium. - Send a delegation/report from B to A.
- Complete the incoming-report turn in A.
- Observe that A changes to
gpt-5.6-terra / mediumand receives
<model_switch>on the next turn.
Workaround used
- Do not pass
modelorthinkingin follow-up message tool calls. - Stop push-style reports from background tasks to the foreground task.
- Poll background tasks with read-only thread inspection instead.
- Manually restore foreground model to
gpt-5.6-sol / highafter a leak.
Log location (not attached wholesale)
The full local rollout is about 270 MB and may contain project/user content, so
it should not be uploaded unredacted. Relevant event lines are 58738, 58742,
58749, 58750, and 58752 in the receiver rollout JSONL. Attach only a sanitized
excerpt if support requests it.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.5k
- Avg merge
- 1m
- Merged PRs (30d)
- 1k
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.
More from openai/codex
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
bug CLI windows-os
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
macOS sandbox blocks hw.optional.arm64 sysctl, causing Flutter to misdetect Apple Silicon as x64 Openbug CLI sandbox
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug CLI TUI
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
CLI config enhancement skills
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
kwakseongjae/auto-hwp#319 ·
-
area:cli bug filter-quality good first issue priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
A-linter
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
oxc-project/oxc#26863 ·