Silently switched models and cost extra time and tokens to fix.
What version of Codex CLI is running?
codex-cli 0.144.4
What subscription do you have?
$20/month
Which model were you using?
luna light
What platform is your computer?
Darwin 25.5.0 arm64 arm
What terminal emulator and version are you using (if applicable)?
wezterm
Codex doctor report
codex doctor returned overallStatus: "fail".
1. Failure: ChatGPT HTTP endpoint unreachable.
2. Warning: WebSocket DNS lookup failed.
3. Warning: Homebrew update check could not resolve formulae.brew.sh.
4. All auth, config, installation, databases, rollout parity, Git, MCP, and
search checks passed.
5. Installed version: 0.144.4.
Important: this command ran inside Codex’s restricted-network sandbox, so the
network failures likely describe the diagnostic process’s sandbox access—not
necessarily your Mac’s normal connectivity.
What issue are you seeing?
---
name: reference_oai_model_switch_cost
description: "Verified token-cost ledger for the 2026-07-15 forced Luna-low model switch and remediation"
metadata:
node_type: memory
type: reference
---
OAI forced-model-switch cost ledger
Source of truth: local Codex rollout JSONL token-count and thread-settings events. Aggregate tokens
include cached input. Reasoning tokens are reported separately by Codex metadata and may be a subset
of output accounting. Do not represent aggregate tokens as an API bill without OpenAI's pricing and
cache treatment; they are the exact product-reported consumption counter.
Incident boundary
- Pre-switch counter, 2026-07-15 15:25:25 EDT: 15,195,167 total tokens; weekly limit 11%.
- Forced setting applied, 15:25:46 EDT:
gpt-5.6-luna, reasoning effortlow. - Restored setting applied, 16:01:30 EDT:
gpt-5.6-sol, reasoning effortmedium. - First restored-model counter, 16:01:30 EDT: 27,401,495 total tokens; weekly limit 23%.
Forced-Luna interval consumption: 12,206,328 aggregate tokens:
- Cached input: 11,630,080.
- Uncached input: 563,303.
- Output: 12,945.
- Reasoning output reported separately: 4,130.
Remediation snapshots
- 16:04:05 EDT: 28,613,671 total; remediation since restoration 1,212,176; incident total
13,418,504; weekly limit 25%.
- 16:06:56 EDT: 29,261,044 total; remediation since restoration 1,859,549; incident total
14,065,877 aggregate tokens; weekly limit 27%.
- 16:08:46 EDT, immediately before the full repair pass: 31,016,552 total; weekly limit 28%.
- 16:15:51 EDT, after tracker reconstruction, corrective logging, commit/push, and Sisyphus
reconciliation: 31,973,633 total; repair-pass cost 957,081; remediation since restoration
4,572,138; full incident cost 16,778,466 aggregate tokens; weekly limit 32%.
What the remediation is correcting
- False ChatGPT 366th-record repair claim.
- Group C triage vs distillation conflation.
- Raw-Markdown screenshot misdiagnosis.
- Obsidian symlink visibility failure and unverified success claim.
- Duplicate visible/hidden tracker sources of truth.
- Incomplete five-row lifecycle matrix followed by an unsynchronized 19-row revision.
- Inconsistent lifecycle-stage semantics and stale three-stage pipeline text.
- Mac/Sisyphus/GitHub divergence and untracked Group C residue.
- Append-only project-log discipline violations.
Update this ledger from the rollout JSONL after each remediation block. Keep forced-interval cost and
remediation cost separate, and report the weekly-limit percentage change.
What steps can reproduce the bug?
Uploaded thread: 019f66dc-8ca7-74e1-a825-d91c7fc7c427
What is the expected behavior?
Don't silently switch models on your users mid stream.
Additional information
I did not choose to switch models.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗