Responses-Lite model compatibility error can loop through auto-compaction and waste tokens

Open 💬 1 comment Opened Jul 8, 2026 by randyhe

Summary

When Codex Desktop is used with a model/channel combination that is not supported by X-OpenAI-Internal-Codex-Responses-Lite, the app can repeatedly emit the same compatibility error while also auto-compacting context. This can consume a large amount of token budget without making progress.

Observed error:

This model is not supported when using X-OpenAI-Internal-Codex-Responses-Lite.

Observed Behavior

A Codex Desktop thread repeatedly showed:

  • Context automatically compacted
  • the compatibility error above
  • another compaction/retry cycle

In the reported case, the user saw 30%+ of the available token usage consumed before manually stopping the run.

Expected Behavior

Codex should detect model/channel incompatibility before starting or resuming an automatic Goal/continuation run. Once the incompatibility is known, it should fail fast with a single blocking UI error and stop further auto-retry or auto-compaction for that run.

Impact

  • Significant avoidable token consumption
  • No useful task progress
  • Context degradation from repeated compaction
  • Poor user trust because the error is deterministic and should be preflightable

Suggested Fix

Add a preflight compatibility check between the selected model and the Responses-Lite mode/header before Goal execution or continuation. If unsupported:

  1. Show one actionable UI error.
  2. Disable auto-resume/auto-retry for that run.
  3. Avoid triggering context compaction as part of the failed retry path.

Environment

  • Product: Codex Desktop
  • Model shown in UI: 5.5 Medium
  • Mode/header implicated by error: X-OpenAI-Internal-Codex-Responses-Lite
  • Scenario: Goal/automatic continuation with repeated context compaction

I am filing this on behalf of a user who hit the loop and lost substantial token budget to the compatibility error.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗