Severe 5-hour usage drain in Codex: ~86% consumed in ~26 minutes with only 2 prompts
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
What version of Codex CLI is running?
codex-cli 0.154.0
What subscription do you have?
ChatGPT Plus
Which model were you using?
gpt-5.6-sol medium fast
What platform is your computer?
Microsoft Windows NT 10.0.26200.0 x64
What terminal emulator and version are you using (if applicable)?
Codex CLI in Windows PowerShell
Codex doctor report
{
"schemaVersion": 1,
"generatedAt": "1789230489s since unix epoch",
"overallStatus": "warning",
"codexVersion": "0.154.0",
"checks": {
"app_server.status": {
"id": "app_server.status",
"category": "app-server",
"status": "ok",
"summary": "background server is not running",
"details": {
"control socket": "C:\\Users\\<REDACTED_USER>\\.codex\\app-server-control\\app-server-control.sock",
"daemon state dir": "C:\\Users\\<REDACTED_USER>\\.codex\\app-server-daemon",
"mode": "ephemeral",
"pid file": "C:\\Users\\<REDACTED_USER>\\.codex\\app-server-daemon\\app-server.pid (missing)",
"settings": "C:\\Users\\<REDACTED_USER>\\.codex\\app-server-daemon\\settings.json (missing)",
"status": "not running",
"update-loop pid file": "C:\\Users\\<REDACTED_USER>\\.codex\\app-server-daemon\\app-server-updater.pid (missing)"
},
"remediation": null,
"durationMs": 0
},
"auth.credentials": {
"id": "auth.credentials",
"category": "auth",
"status": "ok",
"summary": "auth is configured",
"details": {
"auth env vars present": "OPENAI_API_KEY",
"auth file": "C:\\Users\\<REDACTED_USER>\\.codex\\auth.json",
"auth storage mode": "File",
"stored API key": "false",
"stored ChatGPT tokens": "true",
"stored agent identity": "false",
"stored auth mode": "chatgpt"
},
"remediation": null,
"durationMs": 0
},
"config.load": {
"id": "config.load",
"category": "config",
"status": "ok",
"summary": "config loaded",
"details": {
"CODEX_HOME": "C:\\Users\\<REDACTED_USER>\\.codex",
"active thread overrides": "not inspected",
"config.toml": "C:\\Users\\<REDACTED_USER>\\.codex\\config.toml",
"config.toml parse": "ok",
"configuration load ms": "6",
"configuration scope": "invocation config, including cloud-managed policy",
"cwd": "C:\\Users\\<REDACTED_USER>",
"enabled feature flags": "<redacted>",
"feature flag overrides": "none",
"feature flags enabled": "49",
"log dir": "C:\\Users\\<REDACTED_USER>\\.codex\\log",
"mcp servers": "1",
"model": "gpt-5.6-sol",
"model provider": "openai",
"sqlite home": "C:\\Users\\<REDACTED_USER>\\.codex"
},
"remediation": null,
"durationMs": 0
},
"desktop.app.version": {
"id": "desktop.app.version",
"category": "desktop",
"status": "ok",
"summary": "the desktop application is installed",
"details": {
"log directory": "$HOME\\AppData\\Local\\Codex/Logs",
"running": "false",
"version": "26.908.4834.0"
},
"remediation": null,
"durationMs": 0
},
"desktop.app_server.handshake": {
"id": "desktop.app_server.handshake",
"category": "desktop",
"status": "ok",
"summary": "the desktop application is not running",
"details": {},
"remediation": null,
"durationMs": 0
},
"desktop.security.enforcement": {
"id": "desktop.security.enforcement",
"category": "desktop",
"status": "ok",
"summary": "no locally visible recent Codex security enforcement was found",
"details": {},
"remediation": null,
"durationMs": 0
},
"git.environment": {
"id": "git.environment",
"category": "git",
"status": "ok",
"summary": "git executable found; execution not verified",
"details": {
"PATH git #1": "C:\\Program Files\\Git\\cmd\\git.exe",
"PATH git entries": "1",
"git execution": "not inspected (PATH helpers are not executed)",
"repo detected": "false",
"selected git": "C:\\Program Files\\Git\\cmd\\git.exe"
},
"remediation": null,
"durationMs": 10
},
"git.worktree.dev_drive": {
"id": "git.worktree.dev_drive",
"category": "git",
"status": "ok",
"summary": "no Git worktree is active",
"details": {},
"remediation": null,
"durationMs": 0
},
"installation": {
"id": "installation",
"category": "install",
"status": "ok",
"summary": "installation looks consistent",
"details": {
"PATH codex #1": "C:\\Users\\<REDACTED_USER>\\AppData\\Roaming\\npm\\codex.cmd",
"current executable": "C:\\Users\\<REDACTED_USER>\\AppData\\Roaming\\npm\\node_modules\\@openai\\codex\\node_modules\\@openai\\codex-win32-x64\\vendor\\x86_64-pc-windows-msvc\\bin\\codex.exe",
"install context": "npm (package C:\\Users\\<REDACTED_USER>\\AppData\\Roaming\\npm\\node_modules\\@openai\\codex\\node_modules\\@openai\\codex-win32-x64\\vendor\\x86_64-pc-windows-msvc, bin C:\\Users\\<REDACTED_USER>\\AppData\\Roaming\\npm\\node_modules\\@openai\\codex\\node_modules\\@openai\\codex-win32-x64\\vendor\\x86_64-pc-windows-msvc\\bin, resources C:\\Users\\<REDACTED_USER>\\AppData\\Roaming\\npm\\node_modules\\@openai\\codex\\node_modules\\@openai\\codex-win32-x64\\vendor\\x86_64-pc-windows-msvc\\codex-resources, path C:\\Users\\<REDACTED_USER>\\AppData\\Roaming\\npm\\node_modules\\@openai\\codex\\node_modules\\@openai\\codex-win32-x64\\vendor\\x86_64-pc-windows-msvc\\codex-path)",
"managed by Vite+": "false",
"managed by bun": "false",
"managed by npm": "true",
"managed by pnpm": "false",
"managed package root": "C:\\Users\\<REDACTED_USER>\\AppData\\Roaming\\npm\\node_modules\\@openai\\codex",
"npm update target": "not inspected (PATH helpers are not executed)"
},
"remediation": null,
"durationMs": 8
},
"mcp.config": {
"id": "mcp.config",
"category": "mcp",
"status": "ok",
"summary": "MCP configuration is locally consistent",
"details": {
"configured servers": "1",
"disabled servers": "0",
"stdio servers": "1"
},
"remediation": null,
"durationMs": 0
},
"network.env": {
"id": "network.env",
"category": "network",
"status": "ok",
"summary": "network-related environment looks readable",
"details": {
"managed proxy": "not configured",
"proxy env vars": "none",
"respect system proxy": "disabled"
},
"remediation": null,
"durationMs": 0
},
"network.provider_reachability": {
"id": "network.provider_reachability",
"category": "reachability",
"status": "ok",
"summary": "active provider endpoints are reachable over HTTP",
"details": {
"ChatGPT inference URL": "https://chatgpt.com/backend-api/<redacted> reachable (HTTP 405)",
"desktop assets CDN": "https://persistent.oaistatic.com/codex-app-prod/<redacted> reachable (HTTP 200)",
"reachability mode": "ChatGPT auth"
},
"remediation": null,
"durationMs": 153
},
"network.websocket_reachability": {
"id": "network.websocket_reachability",
"category": "websocket",
"status": "ok",
"summary": "Responses WebSocket handshake succeeded",
"details": {
"DNS": "2 IPv4, 0 IPv6, first IPv4",
"auth mode": "chatgpt",
"connect timeout": "15000 ms",
"endpoint": "wss://chatgpt.com/backend-api/<redacted>",
"handshake result": "HTTP 101 Switching Protocols",
"model provider": "openai",
"provider name": "OpenAI",
"proxy env vars": "none",
"reasoning header": "false",
"server model present": "false",
"supports websockets": "true",
"wire API": "responses"
},
"remediation": null,
"durationMs": 543
},
"runtime.provenance": {
"id": "runtime.provenance",
"category": "runtime",
"status": "ok",
"summary": "running npm on windows-x86_64",
"details": {
"commit": "unknown",
"current executable": "C:\\Users\\<REDACTED_USER>\\AppData\\Roaming\\npm\\node_modules\\@openai\\codex\\node_modules\\@openai\\codex-win32-x64\\vendor\\x86_64-pc-windows-msvc\\bin\\codex.exe",
"install method": "npm (package C:\\Users\\<REDACTED_USER>\\AppData\\Roaming\\npm\\node_modules\\@openai\\codex\\node_modules\\@openai\\codex-win32-x64\\vendor\\x86_64-pc-windows-msvc, bin C:\\Users\\<REDACTED_USER>\\AppData\\Roaming\\npm\\node_modules\\@openai\\codex\\node_modules\\@openai\\codex-win32-x64\\vendor\\x86_64-pc-windows-msvc\\bin, resources C:\\Users\\<REDACTED_USER>\\AppData\\Roaming\\npm\\node_modules\\@openai\\codex\\node_modules\\@openai\\codex-win32-x64\\vendor\\x86_64-pc-windows-msvc\\codex-resources, path C:\\Users\\<REDACTED_USER>\\AppData\\Roaming\\npm\\node_modules\\@openai\\codex\\node_modules\\@openai\\codex-win32-x64\\vendor\\x86_64-pc-windows-msvc\\codex-path)",
"platform": "windows-x86_64",
"version": "0.154.0"
},
"remediation": null,
"durationMs": 0
},
"runtime.search": {
"id": "runtime.search",
"category": "search",
"status": "ok",
"summary": "search command found (bundled); execution not verified",
"details": {
"search command": "C:\\Users\\<REDACTED_USER>\\AppData\\Roaming\\npm\\node_modules\\@openai\\codex\\node_modules\\@openai\\codex-win32-x64\\vendor\\x86_64-pc-windows-msvc\\codex-path\\rg.exe",
"search command readiness": "file exists",
"search provider": "bundled"
},
"remediation": null,
"durationMs": 0
},
"sandbox.helpers": {
"id": "sandbox.helpers",
"category": "sandbox",
"status": "ok",
"summary": "sandbox configuration is readable",
"details": {
"approval policy": "OnRequest",
"codex-linux-sandbox helper": "none",
"denied-read glob rules": "0",
"denied-read restrictions": "false",
"denied-read rules": "0",
"execve wrapper helper": "none",
"filesystem sandbox": "restricted",
"glob scan max depth": "unbounded",
"managed filesystem source": "none",
"network sandbox": "restricted",
"sandbox backend": "<redacted>"
},
"remediation": null,
"durationMs": 0
},
"security.endpoint": {
"id": "security.endpoint",
"category": "security",
"status": "warning",
"summary": "endpoint protection detected; Codex exclusions are unverified",
"details": {
"Codex exclusions": "not verified",
"endpoint products": "Microsoft Defender",
"exclusion targets": "signed Codex app; codex.exe; codex-windows-sandbox-setup.exe; codex-command-runner.exe; codex-code-mode-host.exe"
},
"issues": [
{
"severity": "warning",
"cause": "Microsoft Defender can interfere with Codex. Verify Codex exclusions.",
"measured": "not verified",
"expected": "Codex application and helper exclusions",
"remedy": "Microsoft Defender: Add a certificate or executable-path exclusion for Codex and its helpers. If Attack Surface Reduction blocks Codex, add a rule exclusion. If Controlled Folder Access blocks Codex, allow the app.",
"fields": [
"Codex exclusions"
]
}
],
"remediation": "ask your security administrator to verify Codex exclusions and required helper allowances",
"durationMs": 24
},
"state.paths": {
"id": "state.paths",
"category": "state",
"status": "ok",
"summary": "state paths and databases are inspectable",
"details": {
"CODEX_HOME": "C:\\Users\\<REDACTED_USER>\\.codex (dir)",
"active rollout files": "28 files, 529348909 total bytes, 18905318 average bytes",
"archived rollout files": "1 files, 2270717 total bytes, 2270717 average bytes",
"goals DB": "C:\\Users\\<REDACTED_USER>\\.codex\\goals_1.sqlite (file)",
"goals DB integrity": "ok",
"log DB": "C:\\Users\\<REDACTED_USER>\\.codex\\logs_2.sqlite (file)",
"log DB integrity": "ok",
"log dir": "C:\\Users\\<REDACTED_USER>\\.codex\\log (missing)",
"memories DB": "C:\\Users\\<REDACTED_USER>\\.codex\\memories_1.sqlite (file)",
"memories DB integrity": "ok",
"queue DB": "C:\\Users\\<REDACTED_USER>\\.codex\\queue_1.sqlite (file)",
"queue DB integrity": "ok",
"sqlite home": "C:\\Users\\<REDACTED_USER>\\.codex (dir)",
"state DB": "C:\\Users\\<REDACTED_USER>\\.codex\\state_5.sqlite (file)",
"state DB integrity": "ok",
"thread history DB": "C:\\Users\\<REDACTED_USER>\\.codex\\thread_history_1.sqlite (file)",
"thread history DB integrity": "ok"
},
"remediation": null,
"durationMs": 379
},
"state.rollout_db_parity": {
"id": "state.rollout_db_parity",
"category": "threads",
"status": "ok",
"summary": "rollout files and state DB thread inventory agree",
"details": {
"default model provider": "openai",
"rollout DB active files": "28",
"rollout DB active rows": "28",
"rollout DB archive mismatches": "0",
"rollout DB archived files": "1",
"rollout DB archived rows": "1",
"rollout DB duplicate DB paths": "0",
"rollout DB duplicate rollout thread ids": "0",
"rollout DB malformed file names": "0",
"rollout DB missing active rows": "0",
"rollout DB missing archived rows": "0",
"rollout DB model providers": "openai=29",
"rollout DB rows": "29",
"rollout DB scan cap reached": "false",
"rollout DB scan errors": "0",
"rollout DB sources": "cli=26, vscode=2, subagent:other=1",
"rollout DB stale rows": "0"
},
"remediation": null,
"durationMs": 94
},
"system.disk": {
"id": "system.disk",
"category": "disk",
"status": "ok",
"summary": "sufficient free disk space (223.0 GiB)",
"details": {
"CODEX_HOME available": "223.0 GiB",
"failure threshold": "1.0 GiB",
"warning threshold": "5.0 GiB",
"worktree available": "223.0 GiB"
},
"remediation": null,
"durationMs": 0
},
"system.environment": {
"id": "system.environment",
"category": "system",
"status": "ok",
"summary": "OS language it-IT",
"details": {
"EDITOR": "not set",
"VISUAL": "not set",
"os": "Windows 10.0.26200 (Windows 11 Core) [64-bit]",
"os language": "it-IT",
"os type": "Windows",
"os version": "10.0.26200"
},
"remediation": null,
"durationMs": 0
},
"terminal.env": {
"id": "terminal.env",
"category": "terminal",
"status": "warning",
"summary": "width 76 cols - output may wrap (recommended >=80)",
"details": {
"WT_SESSION": "present",
"color output": "enabled",
"console input code page": "850",
"console output code page": "850",
"stderr console mode": "0x00000007 (VT processing: true)",
"stderr is terminal": "true",
"stdin is terminal": "true",
"stdout console mode": "0x00000007 (VT processing: true)",
"stdout is terminal": "true",
"terminal": "Windows Terminal",
"terminal size": "76x38"
},
"issues": [
{
"severity": "warning",
"cause": "width 76 cols - output may wrap (recommended >=80)",
"measured": "76 x 38",
"expected": ">= 80 columns",
"remedy": "resize the window to at least 80 columns",
"fields": [
"terminal size"
]
}
],
"remediation": null,
"durationMs": 0
},
"terminal.title": {
"id": "terminal.title",
"category": "title",
"status": "ok",
"summary": "terminal title default",
"details": {
"terminal title activity": "true",
"terminal title items": "activity, project-name",
"terminal title project source": "cwd",
"terminal title project value": "<REDACTED_USER>",
"terminal title source": "default"
},
"remediation": null,
"durationMs": 0
},
"updates.status": {
"id": "updates.status",
"category": "updates",
"status": "ok",
"summary": "update configuration is locally consistent",
"details": {
"cached latest version": "0.154.0",
"check for update on startup": "true",
"last checked at": "2026-09-12T15:18:13.100450700Z",
"latest version": "0.154.0",
"latest version status": "current version is not older",
"npm update target": "not inspected (PATH helpers are not executed)",
"update action": "npm install -g @openai/codex",
"version cache": "C:\\Users\\<REDACTED_USER>\\.codex\\version.json"
},
"remediation": null,
"durationMs": 214
}
}
}
What issue are you seeing?
During a single Codex session, the 5-hour usage limit was consumed at an unexpectedly high rate.
The session contained only 2 user prompts and lasted roughly 26 minutes, yet the 5-hour usage meter went from approximately 0% used to about 86% used.
The session rollout reports approximately 7.96M cumulative tokens:
~7.90M input tokens
~7.69M cached input tokens
~62K output tokens
The second task alone accumulated approximately 5.26M input tokens, of which ~5.21M were cached.
The workload was ordinary repository work: first auditing a repository, then implementing a small typed CSV loader and a small unittest suite. There were no intentionally massive generation tasks or long autonomous workloads.
The usage meter increased rapidly while Codex performed repeated tool calls and context processing.
Approximate usage progression:
17:53 — 0% used
17:56 — 8%
17:59 — 25%
18:02 — 36%
18:12 — ~39%
18:15 — 47%
18:16 — 64%
18:17 — 76%
18:18 — 81%
18:19 — 86%
I am sharing the session logs and diagnostics generated by the built-in feedback flow.
Expected behavior: a normal repository audit and a small implementation task should not consume almost an entire 5-hour usage window in roughly half an hour, especially when the overwhelming majority of accumulated input tokens are reported as cached.
Please investigate whether repeated cached-context processing during tool calls is being accounted toward usage as expected, or whether there may be a metering issue.
What steps can reproduce the bug?
Uploaded thread: 01a09632-a2b8-7530-843d-092b7a2456b7
What is the expected behavior?
The 5-hour usage limit should decrease proportionally to the actual workload performed.
A short Codex session with only two user prompts, mostly involving repository inspection, file parsing, and a small implementation with tests, should not consume nearly the entire 5-hour allowance within about 26 minutes.
Cached input/context reprocessing during tool calls should not cause disproportionate usage depletion compared with the actual user-visible work performed.
Additional information
The built-in Codex feedback flow was used to upload the current session logs and diagnostics.
The relevant thread ID is: 01a09632-a2b8-7530-843d-092b7a2456b7.
I also inspected the local rollout telemetry, which showed approximately 7.96M cumulative tokens for the session, with about 7.69M reported as cached input tokens.
The 5-hour meter increased from roughly 0% used to about 86% used during the same session.
This issue appears similar to previously reported usage-limit problems, but I am filing this report because the current session includes detailed diagnostics and reproducible telemetry from Codex 0.154.0.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the report with Codex CLI 0.154.0 on Windows PowerShell using the listed model and ChatGPT Plus subscription. Review the Codex doctor report and the .codex log directory, then compare usage after two prompts; done means explaining the excessive consumption and preventing the reported drain.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- powershell, rust
- Domain
- cli, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100