Windows desktop app triggers persistent kernel-pool growth and system-wide slowdown
Summary
The Codex Windows desktop app triggers sustained Windows kernel-pool growth on my machine. Memory usage rises toward 95% within about one hour, after which screenshots and clipboard operations become severely delayed. Closing ordinary applications does not recover the accumulated memory; restarting Windows clears it.
Controlled testing shows that the growth stops when all Codex desktop processes are closed. Disabling Chromium GPU acceleration does not resolve it.
Environment
- Codex package:
OpenAI.Codex_26.616.6631.0_x64 - Codex Chromium:
149.0.7827.115 - Problem began after update from
26.611.8604.0to the26.616.xseries on June 19, 2026 - Windows 11 Home China, 25H2, build
26200.8655 - Lenovo Legion R7000P APH8, model
82Y9 - 16 GB RAM
- AMD Radeon 780M, Lenovo OEM driver
31.0.14005.22001 - NVIDIA RTX 4060 Laptop GPU, Lenovo OEM driver
32.0.15.6624 - PowerShell/native Windows agent
Lenovo's driver utility reports the AMD, NVIDIA, and chipset drivers as the current OEM-recommended versions.
Reproduction
- Restart Windows to clear the accumulated kernel memory.
- Open the Codex Windows desktop app.
- Use Codex normally for repository work for 30–60 minutes.
- Observe Task Manager memory usage steadily rising.
- Close other applications and then close Codex.
- The system remains under high memory pressure; screenshot and clipboard operations remain slow until Windows is restarted.
No project development server, Python process, Playwright browser, WSL, or Docker VM was left running during the controlled comparisons.
Controlled measurements
Codex open, normal GPU mode — 5.08 minutes
- Available physical memory:
-1019 MB - Commit:
+626.7 MB - Nonpaged pool:
+29.7 MB(+5.84 MB/min) - Codex private bytes:
-26.7 MB
The Codex user-mode private allocation did not explain the system growth.
Codex open, hardware acceleration disabled — 5.08 minutes
The Chromium process was verified to use --use-angle=d3d11-warp-webgl and renderer processes used --disable-gpu-compositing. Codex GPU process memory stayed at 0 MB.
- Available physical memory:
-809 MB - Commit:
+681 MB - Nonpaged pool:
+45.7 MB(+8.99 MB/min) - Paged pool:
+24.7 MB - Codex private bytes:
+78.9 MB
Disabling hardware acceleration did not resolve the issue.
All Codex desktop processes closed — 5.08 minutes
Codex process count was continuously verified as zero.
- Commit:
-41 MB - Nonpaged pool:
-7.3 MB(-1.44 MB/min)
The kernel-pool growth stopped when the Codex desktop app was fully closed. VS Code and the OpenAI Codex extension remained installed/running during this comparison.
Related issue
This may be related to #13749, but it is observably different: this report concerns sustained paged/nonpaged kernel-pool and system commit growth, it reproduces with Chromium GPU acceleration disabled and Codex GPU memory at 0 MB, and it stops only when all Codex desktop processes are closed.
Expected behavior
Kernel paged/nonpaged pools and system commit should stabilize during sustained Codex desktop use and should not require restarting Windows after roughly one hour.
Actual behavior
Kernel memory and commit grow while the desktop app is running. The growth stops when all Codex desktop processes are closed, but previously accumulated memory is not fully recovered without a Windows restart.
Current workaround
Use the Codex extension in VS Code and keep the Codex Windows desktop app closed.
I have retained the raw CSV samples from all four comparisons and can provide them if requested. I intentionally did not attach full Codex logs because they may contain session details.
16 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
I have exact same problem. Kernel memory grows to using 50Gig plus of Committed Kernel memory when the system only has 32Gig and apps only use 8Gig. At 50Gig system locks up and becomes unresponsive. I suspect this is related to how Codex uses the GPU driver because that is the only Kernel space related task I can imagine it using. My home machine with RTX3070 exhibits the issue while my work machine on a VM with no GPU has no issue both on same version listed above.
Not the same as this one is specific to Kernel Committed memory which is not released when Codex is closed. Only reboot solves it and if allowed to gobble up too much memory only a hard reset can clear it as it freezes the machine completely.
same problem
Thanks for writing this up. I am seeing a related Windows Codex Desktop performance regression in #28855: since June 12, opening/using Codex Desktop can cause severe intermittent mouse/typing/system input lag, and it still persists for me on
OpenAI.Codex 26.616.10790.0.I linked your report in a broader Discussion collecting recent Windows Desktop performance reports here: https://github.com/openai/codex/discussions/29949#discussioncomment-17428007
No action needed from you unless you want to add more detail there, but I wanted to connect the reports because the recent Windows issues look related enough that they may need a canonical tracker.
Same, I deleted all potential candidate programs, but finally it turned out that codex was a culprit. It keeps calling git.exe and making kernel level memory occupation. And Paged pool & Nonpaged pool is keep increasing.
Codex Desktop repeatedly spawned git.exe:
109 git.exe observed in 30s.
Commands included rev-parse --show-toplevel, status --porcelain, core.fsmonitor.
Paged Pool resident reached ~3.8GB, Nonpaged Pool ~1.4GB.
Earlier xperf showed SepDuplicateToken / Toke / SeAt allocations during Git process creation.
Restarting Codex did not reclaim accumulated kernel pool; reboot required.
Yes, this.. It makes Codex near unusable for more than an hour sustained. Anyone else would categorize this as a blocker level bug, how has this been open for several weeks? We literally have to reboot our machines to recover the memory, systems go into swap. You are quite possibly responsible for significantly burning through write lifetimes on people's SSDs.
Additional independent reproduction on Windows:
Controlled observations:
The machine has 64 GB RAM and the issue is not ordinary Codex process memory: available RAM remained healthy during the controlled tests while kernel nonpaged-pool memory continued to grow.
The local Windows AppX deployment log also shows four Codex package transitions in roughly 36 hours:
26.715.9757.0 -> 26.715.10079.0 -> 26.721.3404.0 -> 26.721.3996.0 -> 26.721.4979.0.
This appears to be an independent reproduction of the kernel-pool/system-wide slowdown described here. Please consider whether the behavior persists in the current 26.721.x builds and whether Git/process/file-system activity in the Windows desktop app is involved. I can provide additional sanitized measurements if needed.
Follow-up to my earlier Windows reproduction: I found a local Git configuration that appears to be a strong trigger/amplifier.
Finding
There was a stray
C:\Users\kevin\.gitdirectory, so the entire Windows user profile was being treated as a Git working tree. While Codex Desktop was active,ChatGPT.exerepeatedly spawnedgit.execommands equivalent to:The path list included broad profile folders such as
AppData,Documents,Downloads,OneDrive,.codex,.docker,.ollama, andnode_modules.This was not a normal Git worktree setup; there was no
.git\worktreesmetadata. I reversibly disabled the repository root by renaming onlyC:\Users\kevin\.git\HEAD(the rest of the folder was retained). After that,git -C C:\Users\kevin rev-parse --show-toplevelcorrectly failed, and the broad profile scan stopped.Follow-up monitor after the change
A 3.48-hour sample at 30-second intervals while Codex Desktop remained in normal use:
git.exe: no sustained activity; brief sampled maximum of 2, final count 0This is materially different from the earlier runaway condition on this machine, where nonpaged pool grew into tens of GB and the desktop became unusable.
This does not prove that the Codex Desktop kernel-pool issue is fixed, or that every report has the same cause. It does suggest that Codex's Git/root detection can turn an accidental profile-wide Git root into very broad filesystem scanning, which may amplify the Windows Git/process/kernel-resource issue reported by others here.
Possible defensive behavior for Codex Desktop:
git.exelaunches;I reproduced what appears to be the same persistent kernel-pool growth on a newer Codex Desktop build, and collected PoolMon data that may help identify the affected Windows components.
Environment
OpenAI.Codex_26.721.11231.0_x64Symptoms
The entire computer had become progressively slow, rather than only the Codex UI. At diagnosis:
Systemprocess handles: 1,756,881Disk utilization was low, the system SSD reported healthy, and closing ordinary applications did not explain the accumulated kernel usage.
PoolMon results before reboot
Largest relevant tags included:
| Tag | Type | Outstanding | Bytes | PoolMon mapping |
|---|---:|---:|---:|---|
|
FMfn| Paged | 4,548,443 | 2,592,351,824 |fltmgr.sysname-cache nodes ||
File| Nonpaged | 1,911,532 | 764,297,152 | File objects ||
WCsc| Nonpaged | 1,745,606 | 670,312,704 | Confirmed present inwcifs.sys||
IoNm| Paged | 1,839,502 | 591,376,880 | I/O name parsing ||
WCri| Paged | 1,023,494 | 529,270,848 | Wcifs-related tag ||
FMfc| Nonpaged | 1,746,038 | 335,239,296 | Filter Manager file-object contexts ||
FMwi| Nonpaged | 1,745,626 | 223,440,128 | Filter Manager work items ||
WCfc| Nonpaged | 1,023,494 | 212,886,752 | Confirmed present inwcifs.sys||
WCse| Paged | 1,745,606 | 111,718,784 | Wcifs-related tag ||
WCss| Paged | 1,745,606 | 111,718,784 | Wcifs-related tag |Several
WC*tags had approximately zero frees. Inspection of the installed Microsoft driver confirmed thatWCscandWCfcare allocation tags embedded in:C:\Windows\System32\drivers\wcifs.sysFile description: Windows Container Isolation FS Filter Driver.
At the same time:
vmmemCmZygotewas present.hcsdiag list -rawshowed one Windows VM owned byCmServiceinSavedAsTemplatestate.wcifshad three active filter instances.Reboot comparison
A reboot cleared nearly all of the abnormal state:
| Counter | Before reboot | Approximately 2 minutes after reboot |
|---|---:|---:|
| System handles | 1,756,881 | 12,242 |
| Paged pool | 7.82 GB | 1.25 GB |
| Nonpaged pool | 4.87 GB | 1.02 GB |
| Committed memory | 69 GB | 20.9 GB |
|
FMfn| 2,472 MB | 196 MB ||
WCsc| 639 MB | 1.04 MB ||
WCri| 505 MB | 0.69 MB ||
WCfc| 203 MB | 0.41 MB |vmmemCmZygotewas absent immediately after reboot.Controlled Codex sandbox test
After beginning sandboxed Codex work again, without launching Docker or Windows Sandbox manually:
vmmemCmZygotereappeared.FMfngrew from approximately 196 MB to 273 MB.FMfnallocations grew from 391,258 to 538,397.The
WC*tags increased only slightly during this short test and then remained stable over a 30-second sample. This suggests the severe condition may require prolonged use, repeated sandbox lifecycle operations, or particular repository/directory workloads.I cannot yet prove that Codex directly owns the Wcifs allocations, but sandboxed Codex activity correlated with
vmmemCmZygoteactivation and Filter Manager cache growth. The pre-reboot PoolMon state and complete reboot reset appear consistent with persistent kernel filesystem/container state rather than ordinary Codex process-private memory.I have retained the sanitized PoolMon snapshots and can collect a longer WPR Pool/Handle trace or additional before/after samples if useful.
Additional clean-boot reproduction with PoolMon, FilterManager event correlation,
Git process-start sampling, and a prior crash dump.
Environment
26200.8875, x64, 16 GB RAMOpenAI.CodexBeta_26.727.4816.0_x64bindflt.sys:10.0.26100.8655, valid Microsoft signaturentfs.sys:10.0.26100.8875, valid Microsoft signatureCoworkVMServicedisabled and stopped;vmcomputestoppedWidgetBoard/WidgetServiceabsentbindfltservice startup was set to Disabled before this boot to make itssubsequent on-demand load visible. I did not unload the live filter.
Clean-boot control and exact activation timeline
Windows booted at
10:50:21.500local time. A SYSTEM monitor sampled once perminute.
Before Codex Desktop launch:
| Time | Nonpaged pool | bindflt | Codex private bytes |
|---|---:|---|---:|
| 10:51:39 | 131 MB | Stopped/Disabled | 0 MB |
| 10:56:55 | 141 MB | Stopped/Disabled | 0 MB |
| 11:02:01 | 165 MB | Stopped/Disabled | 0 MB |
At
11:02:33, two independently logged events have the same timestamp:Microsoft-Windows-AppModel-Runtimecreated the process and Desktop AppXcontainer for
OpenAI.CodexBeta_26.727.4816.0_x64.Microsoft-Windows-FilterManager, System event ID 6: `File System Filter'bindflt' ... has successfully loaded and registered with Filter Manager.`
After Codex Desktop launch:
| Time | Nonpaged pool | bindflt |
|---|---:|---|
| 11:03:33 | 210 MB | Running/Disabled |
| 11:08:54 | 576 MB | Running/Disabled |
| 11:19:31 | 1,020 MB | Running/Disabled |
Growth from
11:03:33to11:19:31was50.74 MB/min. Growth over the last10 minutes of that interval was
41.83 MB/min.PoolMon attribution
An official Microsoft PoolMon snapshot at
11:19:44showed one dominantnonpaged tag:
This is NTFS File Context/FCB allocation, not Codex process-private memory.
On the preceding boot, the same
NtFCtag grew from approximately 1.25 GB to6.56 GB in the retained PoolMon snapshots, then total nonpaged pool reached
approximately 13.37 GB. System commit reached 94-96%, available RAM fell below
200 MB, and eventually even a local
Get-Datecommand could not complete in10 seconds. A normal Windows restart was the only recovery.
Git/root-detection amplifier
The Windows profile contained an empty repository root (
<user-profile>/.git):zero tracked files, zero objects, and no remotes. Therefore Codex treated the
entire user profile as the Git worktree even when the selected workspace was a
subdirectory.
During a 30-second
Win32_ProcessStartTracesample with Codex active:A repeat after restoring the original state measured 76
git.exeand 92conhost.exestarts in 30 seconds. This is consistent with the profile-wideGit-root amplifier described in an earlier comment on this issue. Disabling
the root live, without restarting Codex, caused even faster failed-probe
retries, so I restored the original Git state and did not present that as a
workaround.
Crash evidence
An earlier unexpected restart produced bugcheck
0x13Awith bucket:The active process at the triggering file operation was
git.exe. The dump isretained locally. I will not attach raw dumps or the 4.46 GB WPR ETL publicly
because they can contain local paths and session data, but can provide them to
OpenAI/Microsoft engineers through a private channel.
Questions / suggested investigation
bindfltload at Codex AppX activation expected?tracked files, and rate-limit/back off repeated Git probes?
minute-by-minute CSV, FilterManager/AppModel events, and full PoolMon
snapshots?
All machine, organization, username, and internal-path identifiers have been
removed from this comment.
Independent reproduction on a high-spec Windows workstation, adding system-wide latency symptoms and reboot/app-restart boundaries.
Environment
OpenAI.Codex_26.803.10989.0_x6426200User-visible impact
The slowdown affects the whole desktop, not just Codex:
A normal Windows restart restores responsiveness. Restarting only the Codex UI, or terminating accumulated old
node/node_replprocesses, did not reliably restore the same responsiveness.Measured deltas
Across light/post-reboot and degraded states, observed values included:
Separate long-uptime samples also showed large app-server child-runtime accumulation (up to 103
nodeand 104node_replprocesses). Cleaning those processes reduced one contributor but did not fully explain the persistent desktop/game latency, which is why the kernel-pool/handle component appears important.The local
logs_2.sqlitedatabase was approximately 1.30 GiB and its WAL/state files were updated frequently. Defender activity and Codex/ChatGPT I/O were observed concurrently. That may amplify latency, but I do not yet have WPR/PoolMon attribution proving that the database path causes the kernel-pool growth.Causality boundary
The strongest evidence is the lifecycle comparison:
I am not claiming a specific pool tag or driver root cause without a PoolMon/WPR trace.
Requested investigation
I can provide sanitized before/after tables privately; raw logs and local paths are intentionally omitted from this public comment.
The newer reports appear to confirm the original lifecycle finding across several later Codex builds: kernel-pool/system state grows during sustained Desktop use, the slowdown is system-wide rather than ordinary Codex private memory, stopping Codex limits further growth, and a Windows reboot is often required to recover the accumulated state.
Confirmed evidence: independent PoolMon captures show large filesystem-related allocations (
NtFC,FM*,WC*); one clean-boot test correlated Codex AppX activation withbindfltloading and approximately 42–51 MB/min nonpaged-pool growth; another retained crash dump identifiesbindflt!BfFormatPathFromFileNameInfowithgit.exeactive.Likely amplifiers, not yet proven root causes: profile-wide Git roots and repeated Git/process creation; sandbox/container-filter lifecycle activity; accumulated child runtimes; and heavy SQLite/WAL plus security-filter I/O. GPU acceleration is a weaker explanation because the original report reproduced with GPU compositing disabled.
Could maintainers provide a private upload route and request one standardized bundle from affected users:
git.exe/conhost.exe/taskkill.exeprocess-start trace;That bundle should help distinguish the reproducible Codex lifecycle signal from machine-specific amplifiers without prematurely assigning one driver as the universal cause.
Strange because for me I run Codex on two Windows 10 machines. At home where I have GPU acceleration and at work through remote desktop on a VM where there is no GPU. For me the problem only manifests on my home machine with GPU. At my work machine I do way more Codex work and go months without reboot and memory remains stable (no growth). At home I have to reboot every 5 days if I work with Codex as it eats up committed memory and doesn't release it. There may be other contributing factors between my physical and VM machine but not sure what.
I don't see how GPU could be relevant, given that it happens with headless CLI (for me at least). Do you have the sandbox installed on both systems?
No sandbox on either systems. Must be something else then. Can't figure out what.
________________________________
From: Erik Demaine @.*>
Sent: Friday, August 14, 2026 04:21 PM
To: openai/codex @.*>
Cc: Perry Manole @.>; Comment @.>
Subject: Re: [openai/codex] Windows desktop app triggers persistent kernel-pool growth and system-wide slowdown (Issue #29436)
[https://avatars.githubusercontent.com/u/2218736?s=20&v=4]edemaine left a comment (openai/codex#29436)<https://github.com/openai/codex/issues/29436#issuecomment-5299113960>
I don't see how GPU could be relevant, given that it happens with headless CLI (for me at least). Do you have the sandbox installed on both systems?
—
Reply to this email directly, view it on GitHub<https://github.com/openai/codex/issues/29436?email_source=notifications&email_token=AHISBZCFPYZROW7CDZOQYL35J6NHFA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTKMRZHEYTCMZZGYYKM4TFMFZW63VHMNXW23LFNZ2KKZLWMVXHJLDGN5XXIZLSL5RWY2LDNM#issuecomment-5299113960>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AHISBZHSYWL7ISLPRJNY4Z35J6NHFAVCNFSNUABFKJSXA33TNF2G64TZHM4TMNJUGE2TMNBZHNEXG43VMU5TINZRGY2TONBSG42KC5QC>.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS<https://github.com/notifications/mobile/ios/AHISBZAIJH4ZJ2NYUVN2XST5J6NHFA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTKMRZHEYTCMZZGYYKM4TFMFZW63VHMNXW23LFNZ2KKZLWMVXHJKTGN5XXIZLSL5UW64Y> and Android<https://github.com/notifications/mobile/android/AHISBZBOBDYF4YNM2QG3UMD5J6NHFA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTKMRZHEYTCMZZGYYKM4TFMFZW63VHMNXW23LFNZ2KKZLWMVXHJLTGN5XXIZLSL5QW4ZDSN5UWI>. Download it today!
You are receiving this because you commented.Message ID: @.***>