Windows Desktop 26.707: sustained Electron main-process CPU/memory loop persists without Git
What happened?
Codex Desktop for Windows is unusably laggy on Microsoft Store package OpenAI.Codex 26.707.3748.0.
A multi-pass local diagnostic run found a sustained Electron/Chromium main-process background loop while the app is idle:
- approximately 86–113% of one logical CPU core
- private memory repeatedly cycling between roughly 0.3 and 2.4 GB
- approximately 120,000–140,000 page faults/sec
- approximately 500 MB/sec of logical read I/O
- ETW measured only 151,552 bytes of physical reads over 32.45 seconds, so this is logical/cached/native churn rather than a storage bottleneck
- a scheduler trace independently measured 95.6% of one logical core
- the available sampled main-thread CPU was concentrated in a narrow
chrome.dllRVA range; packaged symbols were unavailable
The GPU and renderer helper processes remained comparatively cold.
Background work observed
Procmon showed repeated Git snapshot commands:
git config --null --get core.fsmonitorgit status --renames --porcelain=v1 -z --untracked-files=nogit add -ugit ls-files --others --exclude-standard -zgit read-treegit add --pathspec-from-file=- --pathspec-file-nulgit write-tree
It also showed repeated bundled-marketplace staging/reconciliation. These amplify the problem, but they do not appear to be the primary trigger.
Controlled tests
The main-process storm remained after each reversible control:
- fresh logs database
- empty session/history profile
- 15 configured plugins disabled and memories off
- workspace with no
.gitdirectory - temporary initial Git commit
- completely clean committed repository
- app window minimized
Representative CPU averages (% of one logical core):
| Control | CPU avg | P95 | Logical reads |
|---|---:|---:|---:|
| Initial idle | 86.32% | 118.52% | 532.7 MB/s |
| Empty history | 91.92% | 116.96% | 542.6 MB/s |
| Configured plugins disabled | 97.94% | 126.68% | 505.1 MB/s |
| No Git repository | 112.67% | 165.69% | 565.4 MB/s |
| Clean committed repository | 89.01% | 115.67% | 520.1 MB/s |
The minimized-window control still used 116.1% of one core and accumulated 7.84 GB of logical reads in 15 seconds.
Environment
- Windows 11 x64
- 32 GB RAM
- 12 logical CPUs
- ample free NVMe space
- Microsoft Store Codex package
26.707.3748.0 - app package status reports OK
- Store update completed before final testing
Expected behavior
The desktop main process should become mostly idle when no task is active and should not continuously churn CPU, private memory, process metrics, Git snapshots, or logical reads.
Related reports
This appears related to #22085, #20933, #17229, #15620, and #22912. #22085 is closed as completed, but the problem still reproduces in 26.707.3748.0 and persists after removing Git from the workspace.
Additional evidence
A sanitized private support bundle is available containing derived telemetry summaries and restoration results. Raw Procmon/ETL traces, databases, sessions, config, authentication data, usernames, and local paths are intentionally not attached publicly.
4 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
I can reproduce what appears to be the same main-process CPU/memory loop on a newer Windows package.
Environment
OpenAI.Codex 26.730.8199.0ChatGPT.exeproduct version:151.0.7922.71Symptom
The desktop UI has a small but very noticeable hitch at roughly one-second intervals, including while no Codex task is running. Scrolling and general UI interaction stutter, while other Windows applications remain smooth. Agent execution and file/command work otherwise appear normal.
Measurements
I sampled each
ChatGPT.exe/codex.exeprocess at 100 ms intervals for 12 seconds during ordinary UI interaction:ChatGPT.exeprocess:codex.exebackend:Per-second CPU time for the hot
ChatGPT.exeprocess repeatedly ranged from roughly 400 ms to just over 1,000 ms. This aligns closely with the periodic UI hitch.Controls already tried
None of these resolved it:
Enabling Codex Pet makes the UI noticeably worse, but disabling it does not remove the baseline periodic hitch.
This looks localized to the Electron/Chromium/ChatGPT desktop main/UI process rather than the Codex backend, GPU saturation, disk pressure, or the workload being executed. The issue therefore appears to remain present in
26.730.8199.0.Follow-up / correction for my previous data point: I found a concrete local trigger, and the mitigation was decisive.
The desktop log showed a stale heartbeat automation repeatedly trying to hydrate/resume an invalid target:
heartbeattarget_thread_id = "current"thread/read -> invalid thread idthread/resume -> invalid session idheartbeat_automation_resume_failedthread_hydrationAfter pausing that single stale automation—without deleting threads or resetting the app—a new 10-second sample of the same hot
ChatGPT.exeprocess changed from:The user also confirmed that both the approximately one-second UI hitch and the recurring startup “Reconnecting…” delay improved after pausing the automation.
So on this machine, the sustained CPU/memory loop and periodic UI hitch were primarily caused by a malformed/stale heartbeat target being retried through thread hydration. Codex Pet amplified the UI load but was not the root trigger.
This suggests a useful additional failure mode to guard against: Desktop should validate or migrate legacy heartbeat targets such as
"current", and failed heartbeat hydration should use bounded retry/backoff instead of retrying continuously. My earlier comment should not be interpreted as proof that the same loop persists in 26.730 with a clean automation state.I can reproduce a closely matching regression on the current Windows package after the August 14 update
Environment
OpenAI.Codex 26.810.4967.0ChatGPT.exeproduct version:151.0.7922.137OkTiming and symptoms
The machine had used Codex Desktop for several months without this behavior. The package auto-updated on August 14, and the lag first appeared within roughly two hours
The app now feels laggy immediately after launch. Mouse/input responsiveness can feel degraded even though Task Manager does not show high total CPU, RAM, disk, GPU, DPC, or interrupt saturation. Restarting the app did not help, and a full Windows restart did not resolve it either
CPU and ETW evidence
A 10-second per-thread CPU delta before reboot showed the hottest thread in the main
ChatGPT.exeprocess consuming 6.234 CPU seconds, or about 62.3% of one logical coreAfter the full Windows restart, a fresh 10-second sample reproduced the same pattern:
ChatGPT.exePID: 22172An 8-second WPR sampled-profile trace from the earlier run recorded:
chrome.dllchrome.dllRVA rangecodex.exe, and Node/MCP child processes were comparatively coldThe exact packaged
chrome.dll.pdbis not publicly available, so I cannot responsibly name the internal function from the RVA aloneControls and a distinction from the stale-heartbeat report
quick_checktarget_thread_id = "current"exists in the local heartbeat automation filesheartbeat_automation_resume_failed,invalid thread id, orinvalid session idSo the stale-heartbeat retry trigger described in a previous comment does not appear to explain this machine
Current hypothesis
This looks like a regression in the packaged Electron/Chromium main process that enters a sustained CPU loop or high-frequency polling path shortly after startup. The update timing is strong evidence of correlation, but without matching private symbols or an old-build A/B test I cannot claim the exact internal function or prove which feature introduced it
A sanitized ETL and derived per-thread summaries are available if a maintainer wants them