Codex can report the wrong active model despite correct runtime routing

Open 💬 2 comments Opened Jul 17, 2026 by Lennart-Hue
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

What version of the Codex App are you using (From “About Codex” dialog)?

26.715.21425 (build 5488; embedded app-server 0.145.0-alpha.18)

What subscription do you have?

ChatGPT Pro (20x)

What platform is your computer?

Darwin 25.5.0 arm64 arm (macOS 26.5.2, build 25F84)

What issue are you seeing?

The Codex App can provide an incorrect or inconsistent answer when asked which model is currently active, even though the persisted runtime state contains the correct model selection.

The clearest mismatch occurred with gpt-5.6-sol and High reasoning:

  • Persisted turn_context: gpt-5.6-sol, High
  • User prompt: test: which model?
  • Assistant response: GPT-5.4.

The following turn was correctly routed to gpt-5.3-codex-spark with High reasoning, but when asked for the current model layer, the assistant answered only that it was using GPT-5.

Additional tests were inconsistent:

  • gpt-5.6-sol sometimes identified itself exactly as GPT-5.6 Sol.
  • The same model sometimes identified itself only as being based on GPT-5.
  • gpt-5.4-mini and gpt-5.6-terra stated that the exact model snapshot was not exposed.
  • gpt-5.3-codex-spark reported only the GPT-5 family despite being asked for the current model layer.

The persisted turn_context values match the selected models. I found no evidence of fallback or rerouting for these turns. This therefore appears to be a model self-identification or runtime-metadata exposure problem, not a model-selection failure.

This is especially confusing because an exact but incorrect answer such as GPT-5.4 makes it appear that the model picker or routing failed when the actual runtime route was correct.

What steps can reproduce the bug?

Primary reproduction:

  1. Open a Codex App thread.
  2. Select GPT-5.6 Sol with High reasoning.
  3. Send: test: which model?
  4. Observe that the assistant may identify itself as a different exact model. In the attached reproduction it answered GPT-5.4.
  5. Inspect the persisted session state. The corresponding turn_context records gpt-5.6-sol with High reasoning.
  6. Switch to GPT-5.3 Codex Spark with High reasoning.
  7. Ask again which model or model layer is currently active.
  8. Observe that the assistant identifies itself only as GPT-5, while turn_context records gpt-5.3-codex-spark.

Control reproduction:

  1. Start a clean thread with GPT-5.6 Sol and Medium reasoning.
  2. Ask which model is active and provide the available model names as choices.
  3. Observe that it can identify itself correctly as GPT-5.6 Sol.
  4. Switch to GPT-5.4 Mini or GPT-5.6 Terra.
  5. Ask for the exact model again.
  6. Observe that the assistant may instead state that the exact model snapshot is not exposed.

The attached sanitized event extract contains the runtime model, reasoning effort, test prompt, and resulting response for each highlighted turn.

What is the expected behavior?

_No response_

Additional information

The persisted session state indicates that model routing itself worked correctly. The highlighted turns contain the expected runtime models in turn_context, and I found no fallback or rerouting event.

The behavior is consistent with the generated response not having reliable access to the exact model label shown by the app. However, the exact cause is an inference; the evidence establishes only that the runtime state and the generated self-identification disagree.

This is materially different from #10875 and #14008. Those reports concern the model selector reverting or failing to persist a selection. Here, the selected model persists and is used, but the assistant reports the wrong or insufficiently specific identity.

This report intentionally excludes the separate unexpected-context-compaction issue reported from the same app release.

Attachments:
A sanitized persisted-event extract is attached. The corresponding session ID and in-app feedback submission are available to OpenAI maintainers upon request.

model-self-identification-environment.redacted.txt
model-self-identification-events.redacted.txt

View original on GitHub ↗

2 Comments

github-actions[bot] contributor · 1 month ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #33502

Powered by Codex Action

chunshulimao · 2 days ago

Confirmed reproducible on ChatGPT Work on the web on 2026-08-26.

Environment:

  • Windows 10 desktop
  • Chrome 151
  • ChatGPT Pro
  • UI model selection: 5.6 Sol
  • Reasoning setting: High

Reproduction:

  1. Select 5.6 Sol / High in the model picker.
  2. Ask the assistant which exact model is active.
  3. The assistant first says only that it is a Codex agent based on the GPT-5 family and that the exact backend model is not exposed.
  4. When pressed for an exact answer, it states: “I am currently using GPT-5 (Codex agent version), not GPT-5.6 Sol.”

Actual result:

  • The assistant explicitly contradicts the visible model picker and incorrectly denies that the session is using GPT-5.6 Sol.

Expected result:

  • The assistant should report GPT-5.6 Sol / gpt-5.6-sol, consistent with the selected session model, or receive authoritative runtime metadata so it cannot invent or deny the active model.

A screenshot from the reproduction clearly shows “5.6 Sol 高” in the model selector. This further supports that the issue is model self-identification/runtime-metadata exposure rather than a user selection mistake.