Skip to content

Codex startup failure (model_not_found) leaves the run in running indefinitely, and switching the model in the UI has no effect #31467

Closed

Description

@lgaudez

Version: T3 Code 0.1.6 · provider: Codex (ChatGPT account)

Steps

  1. Start a Codex thread with a model name that does not exist (e.g. gpt-6).
  2. Codex answers within seconds with model_not_found: "The 'gpt-6' model is not supported when using Codex with a ChatGPT account."
  3. Look at the thread in the UI.
  4. Pick a valid model in the model picker and send a message.

Expected

  • The run ends in an error state when the provider fails at startup, and the thread shows the error.
  • The model change in the picker applies to the next run.

Actual

  • The run (requested 09:21:42) stays running for 2 h 30. The provider error was received at 09:21:48. The run only became interrupted at 11:51:44, after a manual interrupt.
  • After switching the model, the new run still carries gpt-6 in its model selection (thread_settings_applied still shows gpt-6).
sequenceDiagram
  participant U as User
  participant T as T3 (UI + runs)
  participant C as Codex
  U->>T: start thread, model "gpt-6"
  Note over T: 09:21:42 run 1 = running
  T->>C: start turn
  C-->>T: 09:21:48 error model_not_found
  Note over T: the error does not close the run
  Note over T: 09:21:48 to 11:51:44: still "running" (2 h 30)
  U->>T: switch model in the UI
  T->>C: run 2 started with "gpt-6" again
  U->>T: 11:51:44 manual interrupt, run = interrupted
Loading
Time Codex T3
09:21:42 starts run 1: running
09:21:48 error model_not_found still running
after model switch in UI n/a settings applied: still gpt-6
11:51:44 n/a manual interrupt: interrupted

Impact

A typo in a model name looks like a very long "thinking" turn. When agents launch threads automatically, nobody notices the failure. Validating the model name against the provider catalogue would also help, but the main bug is that the run never leaves running.

Evidence

orchestration_v2_projection_runs row (status, requested_at, completed_at) and the provider error payload. I can attach the redacted rows.

Activity

  1. juliusmarminge commented on Nov 5, 2026

    @juliusmarminge
    Member

    Thanks for the detailed report. This is fixed on main by 997e3f37f7 (#28040), which shipped in v0.1.7.

    Cause: with a ChatGPT account, Codex reports this rejection with the error code modelNotFound, which T3 Code 0.1.6 did not recognize. It dropped Codex's failed turn/completed notification, so the run stayed running. The second symptom follows from the first: while that run is still running, a message sent after switching models is delivered as a steer into the same run, so it keeps gpt-6.

    What I ran, using a local backend that rejects gpt-6 with the same detail message, with Codex reporting modelNotFound:

    • v0.1.6: Codex sent the failed turn/completed about 8 s after the send, and the run stayed running. After switching to GPT-6.1-Sol, the next message was steered into the same gpt-6 run and never reached the backend.
    • main (337c5858c3): the run ends failed about 8 s after the send and the thread shows "The 'gpt-6' model is not supported when using Codex with a ChatGPT account." After switching the model, the next message starts a new run on gpt-6.1-sol.

    Updating to 0.1.7 or later should resolve both. Closing this; please reopen if you still see it on 0.1.7 or later.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions