[Windows Desktop 26.820.7780.0] composer_content full-status retries exhaust system commit and hard-freeze Windows
What version of the Codex App are you using (From “About Codex” dialog)?
Microsoft Store/MSIX OpenAI.Codex 26.820.7780.0.
An update to 26.820.9563.0 was staged only after the last incident. It was not the running build during the failures and has not yet been tested.
What subscription do you have?
ChatGPT Pro.
What platform is your computer?
Microsoft Windows NT 10.0.26200.0 x64
Additional environment details:
- Windows 25H2, build
26200.9168 - 61.6 GiB physical RAM
- Page file: 32,000 MiB initial / 64,000 MiB maximum (active before the latest failure)
- Git for Windows
2.55.0.windows.5 - Codex CLI
0.147.0 - Native Windows workspace on a local NVMe volume, not WSL
What issue are you seeing?
Codex Desktop repeatedly schedules a full untracked/ignored git status through the composer_content / watch-repo path. Failed or timed-out scans are retried without an effective circuit breaker. On this machine the retry path exhausted Windows system commit, caused a large git.exe crash-dialog storm, made unrelated OS components unable to allocate memory, and hard-froze the machine until a forced power-off was required.
The relevant sanitized command shape is:
git -c safe.bareRepository=explicit -c core.hooksPath=NUL -c core.fsmonitor= \
status --no-renames --ignored=matching --untracked-files=all \
--porcelain=v1 -z -- <large-data-subtree>
The Codex log records identify the caller unambiguously:
requestKind=watch-repo
source=composer_content
subcommand=status
outputLimitExceeded=false
outputLimitMaxBytes=null
Across the affected day, the Desktop logs contain 34 git.command.complete records for this exact composer_content status path:
- 33 timed out, normally after approximately 60 seconds
- 1 failed with exit code 128 during the final resource-exhaustion window
- all 34 show
outputLimitMaxBytes=null
Representative records from the final incident:
2026-08-26T18:50:02.954Z
durationMs=3678 exitCode=128 failureReason=nonzero_exit
requestKind=watch-repo source=composer_content
stderrBytes=707 stdoutBytes=0 subcommand=status timedOut=false
2026-08-26T18:51:20.649Z
durationMs=62901 exitCode=null failureReason=timed_out
requestKind=watch-repo source=composer_content
stderrBytes=0 stdoutBytes=0 subcommand=status timedOut=true
Correlated Windows timeline (local time, UTC+2):
- 20:50:01 — Windows reports insufficient virtual memory.
- 20:50:02 — the first Codex
watch-repostatus returns exit 128. - 20:50:32 —
stornvmereports that memory could not be allocated. - 20:50:39 — Codex/Electron logs
net::ERR_INSUFFICIENT_RESOURCES. - 20:50:45–20:51:26 — Windows records 140
git.exesystem-error popups: “A new guard page for the stack cannot be created.” - 20:51:20 — the next Codex status attempt reaches a 62.9-second timeout.
- 20:54:12 — Windows records a
git.execrash with exception0xc0000005. - 21:09:54 — the machine is forcibly powered off after remaining unusable.
- Next boot — Kernel-Power 41 / EventLog 6008 records the unexpected shutdown, with bugcheck code 0.
This was not an isolated Git dialog. Earlier the same day Windows also recorded 302 matching Git guard-page popups, three low-virtual-memory popups, and 18 git.exe Application Error events in one hour.
No WHEA hardware error, disk-health failure, or bluescreen was recorded. Both NVMe drives report healthy. The storage warning was specifically an allocation failure during the commit-exhaustion window.
What steps can reproduce the bug?
Because reproducing the final system crash is unsafe, these are bounded reproduction steps:
- On Windows, open a large valid Git repository containing a data-heavy subtree with many visible untracked/ignored paths. Some unreadable cache directories amplify the scan but are not required for the product-side retry defect.
- Open or interact with a local Codex conversation so the composer starts repository watching.
- Observe Desktop logs under
%LOCALAPPDATA%\Packages\OpenAI.Codex_2p2nqsd0c76g0\LocalCache\Local\Codex\Logs. - Look for
git.command.completerecords withrequestKind=watch-repo source=composer_contentand the full-status command above. - If one scan reaches the approximately 60-second timeout, stop the test. Do not allow repeated retries to continue to resource exhaustion.
Control observations:
- Git itself is otherwise usable manually in the same repository.
- After enabling Git's standard untracked/filesystem/index caches, the same full-status command with output discarded completed with exit code 0 in 3.754 seconds.
- A local safety guard that enforces one logical Codex full-status process tree at a time, lowers its priority, and terminates it at 50 seconds has prevented further Git/resource failures. This is a mitigation, not an upstream fix.
- Merely enlarging the page file did not prevent recurrence: the latest failure happened after the 32/64 GiB page-file setting was active.
Session IDs, prompts, usernames, repository names, private paths, and raw logs are intentionally omitted. Sanitized excerpts can be provided through a maintainer-approved private channel.
What is the expected behavior?
composer_contentrepository watching must be single-flight per repository.- A timeout, exit 128, spawn failure, or Windows resource error must open a circuit breaker instead of scheduling another full scan.
- Captured stdout/stderr and untracked-path enumeration must have hard size/resource limits; this path should not run with
outputLimitMaxBytes=null. - Timeout/cancellation must terminate and reap the complete Git for Windows process tree.
- Codex should surface one actionable repository-status warning and suspend automatic full scanning until the user retries.
- A repository scan must never be able to exhaust system commit or destabilize unrelated Windows components.
Additional information
This appears to be a regression correlated with Desktop 26.820.7780.0:
- The previous locally observed build,
26.818.8289.0, last appears in logs on 2026-08-25 at 21:20 local time. 26.820.7780.0first appears on 2026-08-26 at 00:29.- The virtual-memory/Git crash incidents and unexpected shutdowns occurred after that transition.
This timing is correlation, not proof of the responsible source commit. OpenAI would need internal build/source history to confirm the regression point.
Related reports describe the same broader failure family, but none found in search names the source=composer_content requestKind=watch-repo path:
- #35776 — whole-machine commit exhaustion from background Git activity
- #29408 — repeated/stuck Git polling processes on Windows
- #30820 — eager
review_model/review-summarysnapshots - #37796 —
git.execrashes and orphaned children on Windows - #38062 — Git timeout/cancellation retry behavior and missing emergency control
The distinct contribution of this report is the current 26.820.7780.0 reproduction, the composer_content/watch-repo source attribution, 33 repeated 60-second timeouts with no output limit, and the directly correlated Windows allocation-failure timeline.
5 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
I reviewed #39664. It appears related at the general repository-scanning and memory-pressure level, but it does not describe the same confirmed failure path.
#39664 concerns macOS 26.818.21641 and apparent node_modules/symlink traversal causing the main app process to grow to 12–15 GB. This report concerns Windows 26.820.7780.0, where the Desktop logs explicitly identify requestKind=watch-repo and source=composer_content: 34 status records, 33 approximately 60-second timeouts, and outputLimitMaxBytes=null, followed by Windows commit exhaustion, git.exe guard-page failures, allocation failures, Git crashes, and a forced shutdown.
For those reasons, I do not believe this is an exact duplicate. Maintainers can of course consolidate the reports if internal evidence confirms the same root cause.
Update: reproduced again on Windows Desktop
26.820.9563.0The Store/MSIX package was registered at
2026-08-27 08:27:37Z, shortly after this issue was opened at08:25:10Z, and it was the active package for the following incident. This build does not resolve the failure.During one
26.820.9563.0session, the sanitized Desktop logs contain 19 additionalgit.command.completerecords with:Between
08:54:28Zand09:05:30Z:outputLimitMaxBytes=nullOne of these status processes returned decimal
3221225773(0xC000012D,STATUS_COMMITMENT_LIMIT), and three returned3221225794(0xC0000142,STATUS_DLL_INIT_FAILED). The same session also contains 19 approximately 60-secondbranch-diff-stats/review_modelrev-parsetimeouts and onels-filestimeout; those records also haveoutputLimitMaxBytes=null.Windows then recorded 14
git.exeApplication Error crashes between08:57:18Zand09:03:28Z: 13 with0xC00000FD(STATUS_STACK_OVERFLOW) and one with0xC0000005. The machine became unusable and the next boot recorded Kernel-Power 41 / EventLog 6008.The local safety guard described in the original report was not active during this updated-build incident, so these timeout, exit, and spawn-failure records reflect unmodified Desktop behavior.
Therefore
26.820.9563.0is affected as well. The samecomposer_content/watch-reporetry path and missing output limit remain present, now with a directSTATUS_COMMITMENT_LIMITresult in the Desktop log.Another 26.820.9563.0 incident exhausted the machine's full commit limit even with a host-side Git guard active.
At 2026-08-27 10:26:42Z, Windows displayed its "not enough virtual memory" warning. At that point the machine had approximately:
This was followed by 16 git.exe Application Error events between 10:26:47Z and 10:29:56Z:
The machine stopped responding and had to be powered off. The next recorded Windows boot time is 10:34:03Z.
Unlike the previous reproduction, the independent host-side guard was running throughout this incident. It had started at 09:32:38Z, emitted healthy heartbeats through 10:22:44Z, and observed repeated Codex-signed full-status process pairs immediately before the failure. Its policy allowed one logical full scan at a time, lowered that scan to BelowNormal, killed parallel scans, and enforced a 50-second cutoff. That was still insufficient. When commit was exhausted, even the guard's next process query was aborted.
The Desktop implementation still invokes these internal Git operations with no output cap (outputLimitMaxBytes=null). A single allowed scan can therefore continue feeding unbounded output into the parent, while subsequent retries and related Git operations fail or crash. The Windows evidence does not identify which parent process retained every committed byte, so that final ownership statement is an inference; the commit exhaustion and git.exe crash storm themselves are directly recorded.
As an emergency local workaround, I now fail fast only the exact Codex-signed internal status, ls-files --others, and turn-diff add --pathspec-from-file=- calls before the real Git executable starts. Normal/manual Git commands still delegate to Git 2.55.0.windows.5. This disables parts of the Desktop review/status integration for the large repository, but it prevents another full-machine commit-exhaustion event. It is not a product fix.
Please add a hard maxOutputBytes limit and a retry/circuit-breaker policy to the Desktop Git integration itself. A timeout and single-scan concurrency limit are not sufficient when output collection is unbounded.
Correction and clarification after re-checking older local logs:
I found the same built-in
composer_content/watch-repofailure family in the same repository before 26.820. In the Desktop session running MSIX26.818.5229.0on 2026-08-23, there are 28git.command.completerecords with:Of those 28 records:
outputLimitMaxBytes=nullTherefore, the evidence does not support claiming that 26.820 introduced the underlying defect. Builds
26.820.7780.0and26.820.9563.0are demonstrably affected, but the older records show that this command/retry failure family already existed in26.818.5229.0. Please read the original phrase "appears to be a regression correlated with Desktop 26.820.7780.0" only as incident-timing correlation, not as an identified regression point.I also checked the local extension paths because this installation has plugins, skills, and MCP servers. No installed plugin or skill contains the internal Git command signature above; none of the 15 installed plugin hook definitions invokes
git status,git ls-files, orgit add; and none of the six configured MCP definitions references Git,watch-repo, or the affected workspace. During the latest incident window, the Desktop log likewise contains no MCP/plugin/skill/tool component record identifying an extension as the caller. The failing records remain attributed tosource=composer_content, which is consistent with the app's built-in automatic Git-state integration described in the Codex troubleshooting documentation.This does not mathematically exclude extensions or concurrent workers as indirect load amplifiers: the forced shutdown left no complete per-process heap dump. It does distinguish the directly recorded caller from possible workload triggers. The actionable product issue remains the built-in repository watcher running full scans with no hard output limit and no effective retry circuit breaker.