Codex Desktop hides Fast mode UI with stale model_catalog_json missing service_tiers

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

Summary

Codex Desktop can silently hide the Fast mode / Speed selector when ~/.codex/config.toml points model_catalog_json at an older local model catalog that contains additional_speed_tiers but not the newer service_tiers field.

The request/config layer still appears to know about fast mode, but the Desktop model/reasoning dropdown has no Speed/Fast UI because the frontend derives serviceTierOptions from service_tiers.

Environment

  • Codex CLI/App version: 0.142.0-alpha.1
  • Platform: macOS arm64
  • Auth mode: ChatGPT auth configured
  • Feature flag: fast_mode stable true
  • Config contains a local model catalog override:
model = "gpt-5.5"
model_catalog_json = "~/.codex/model_catalog.local.json"
model_reasoning_effort = "xhigh"
service_tier = "fast"

Paths and account identifiers are intentionally redacted.

Observed behavior

The Codex Desktop model/reasoning dropdown showed only reasoning levels, for example:

  • Low
  • Medium
  • High
  • Extra High

The Speed/Fast selector was missing.

Deleting the Desktop global state file temporarily made the Fast UI appear, but that also removed project/sidebar history, so it was not a usable fix. Clearing stale remote host state did not fully fix the issue. The durable fix was updating the configured local model catalog so that gpt-5.5 contained service_tiers.

Evidence

The stale local catalog had this shape:

{
  "fetched_at": "2026-05-01T16:33:02.699363Z",
  "client_version": "0.128.0",
  "gpt55": {
    "service_tiers": null,
    "additional_speed_tiers": ["priority", "fast"]
  }
}

The current cache generated by the newer client had this shape:

{
  "fetched_at": "2026-06-19T05:34:15.395173Z",
  "client_version": "0.142.0",
  "gpt55": {
    "service_tiers": [
      {
        "id": "priority",
        "name": "Fast",
        "description": "1.5x speed, increased usage"
      }
    ],
    "additional_speed_tiers": ["fast"]
  }
}

After merging the service_tiers field from the current cache into the configured local model catalog, codex debug models showed:

{
  "slug": "gpt-5.5",
  "service_tiers": [
    {
      "id": "priority",
      "name": "Fast",
      "description": "1.5x speed, increased usage"
    }
  ],
  "additional_speed_tiers": ["fast"]
}

After restarting Codex Desktop, the Speed/Fast UI returned.

Expected behavior

Codex Desktop should not silently hide Fast mode when a configured model catalog uses an older schema. Possible fixes:

  1. Migrate or normalize additional_speed_tiers into service_tiers for UI purposes.
  2. Warn when model_catalog_json points to an incompatible stale catalog.
  3. Prefer the current model cache for UI-only speed tier metadata when the configured catalog lacks service_tiers.

Why this is hard to diagnose

The visible symptom points at Desktop UI/global state, and deleting .codex-global-state.json can appear to fix it temporarily while also removing sidebar/project history. The actual durable fix was updating model metadata, which is not obvious from the UI.

View original on GitHub ↗

2 Comments

github-actions[bot] contributor · 2 months ago

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

  • #27940

Powered by Codex Action

loccen · 2 months ago

Thanks for the duplicate check. I reviewed #27940 and I don't think this is the same root cause.

#27940 is about Fast mode being unavailable when Codex Desktop / the VS Code extension is authenticated with an OpenAI API key.

This issue was reproduced with ChatGPT auth. Locally, codex doctor reported ChatGPT auth configured and the fast_mode feature as enabled. The Fast/Speed UI disappeared only while config.toml pointed model_catalog_json at an older local model catalog where the gpt-5.5 entry had the older additional_speed_tiers field but no service_tiers field.

Updating that local catalog so gpt-5.5.service_tiers included the Fast tier made the Desktop UI show the Speed/Fast menu again.

So the requested fix here is different from the API-auth entitlement case: Codex Desktop should either normalize older catalog entries that contain additional_speed_tiers, or detect/report that a configured model_catalog_json is using an incompatible schema instead of silently hiding the Fast mode UI.