What version of the Codex App are you using (From “About Codex” dialog)?
26.602.9276.0 (also reproduced on 26.602.4764.0)
What subscription do you have?
Pro
What platform is your computer?
No response
What issue are you seeing?
On Windows, the desktop app's startup "bundled plugins reconcile" rebuilds %USERPROFILE%\.codex\.tmp\bundled-marketplaces\openai-bundled by deleting and re-copying it from the app bundle. If the Chrome plugin's native messaging host (extension-host.exe, spawned by Chrome, survives Codex restarts) is still running, it holds a handle inside that folder and the delete fails with EBUSY. The reconcile then aborts mid-way, leaving the runtime marketplace partially deleted (only plugins\chrome remains; .agents\plugins\marketplace.json is gone).
Consequences after every restart while Chrome's host is alive:
- Computer Use and Chrome plugins disappear from the marketplace/plugin model.
- The Computer Use native pipe fails on a loop (~every 10–30 s):
warning [computer-use-native-pipe] computer-use native pipe startup failed
errorMessage="Windows Computer Use helper paths are unavailable"
info [computer-use-native-pipe] computer-use notify config ensure finished
platform=win32 reason=missing-helper-path status=skipped
- Because the aborted reconcile is also what stages plugin caches, the per-user cache (
.codex\plugins\cache\openai-bundled\computer-use\<version>) is never populated for a new bundled plugin version after an app update. The CU helper resolver builds its path from the bundled manifest version (plugin.json → localVersion), so it points at a non-existent directory and throws Windows Computer Use helper paths are unavailable even though codex-computer-use.exe ships in the app bundle.
Key log lines from one startup (build 26.602.9276.0):
15:02:17.657Z info [bundled-plugins] bundled_plugins_reconcile_started reason=startup
15:02:32.863Z warning [BundledPluginsMarketplace] bundled_plugins_marketplace_resolve_failed
errorCode=EBUSY errorMessage="EBUSY: resource busy or locked, rmdir
'C:\Users\<user>\.codex\.tmp\bundled-marketplaces\openai-bundled\plugins\chrome\extension-host\windows\x64'"
15:02:33.976Z warning [computer-use-native-pipe] computer-use native pipe startup failed
errorMessage="Windows Computer Use helper paths are unavailable"
15:02:34.017Z info [bundled-plugins] bundled_plugins_reconcile_completed reason=startup
The lock holder (confirmed with a rename test + process inspection): a stale extension-host.exe running since a previous session, command line extension-host.exe chrome-extension://hehggadaopoacecdllhhajmbjkdcmajg/ --parent-window=0, image path .codex\plugins\cache\openai-bundled\chrome\latest\extension-host\windows\x64\extension-host.exe. It is launched by Chrome (native messaging), so quitting/restarting Codex does not stop it — one stale host breaks every subsequent launch.
What steps can reproduce the bug?
- Windows 11, Codex desktop app, Chrome plugin enabled, Codex Chrome extension installed and used at least once (so
extension-host.exe is running).
- Quit Codex completely and relaunch it (the extension-host survives because Chrome owns it).
- Watch the desktop log:
bundled_plugins_marketplace_resolve_failed errorCode=EBUSY, then Computer Use + Chrome disappear from Plugins, and the computer-use native pipe loops "Windows Computer Use helper paths are unavailable".
What is the expected behavior?
Startup reconcile should tolerate a running extension-host: plugins should not vanish after a restart, and the Computer Use helper should start.
Additional information
Verified workaround (root-cause confirmation)
Kill the Chrome-extension host right before/while launching Codex so the reconcile window completes cleanly:
Get-CimInstance Win32_Process -Filter "Name='extension-host.exe'" |
Where-Object { $_.CommandLine -like '*hehggadaopoacecdllhhajmbjkdcmajg*' } |
ForEach-Object { Stop-Process -Id $_.ProcessId -Force }
# then launch Codex; reconcile completes with no EBUSY,
# computer-use native pipe reports "startup ready",
# and the reconcile itself re-stages the missing plugin cache version.
With this, the same build goes from permanently broken to fully working (verified across 5+ restarts), which confirms the race is the root cause. The host respawns afterwards and Chrome control keeps working.
Suggested fixes
- Stage the new marketplace copy to a temp directory and atomically swap/rename, instead of delete-then-recopy in place.
- Or: treat
EBUSY on individual entries as non-fatal (skip + retry) rather than aborting the whole reconcile, so other plugins (computer-use, marketplace.json) still get materialized.
- Or: have the app terminate/coordinate with its own
extension-host.exe before the reconcile delete.
- Decouple cache staging from the
.tmp rebuild so a failed .tmp delete can't leave the Computer Use helper cache unstaged after an app update.
Environment
- Codex desktop (MSIX): 26.602.9276.0 (also reproduced on 26.602.4764.0)
- Bundled plugins version: 26.602.71036
- Windows 11 Enterprise 10.0.26200, x64
- Chrome with Codex extension (
hehggadaopoacecdllhhajmbjkdcmajg)
Possibly related: #25962, #26204 (same user-visible symptom "Computer Use unavailable" on Windows; the mechanism above may explain them).
What version of the Codex App are you using (From “About Codex” dialog)?
26.602.9276.0 (also reproduced on 26.602.4764.0)
What subscription do you have?
Pro
What platform is your computer?
No response
What issue are you seeing?
On Windows, the desktop app's startup "bundled plugins reconcile" rebuilds
%USERPROFILE%\.codex\.tmp\bundled-marketplaces\openai-bundledby deleting and re-copying it from the app bundle. If the Chrome plugin's native messaging host (extension-host.exe, spawned by Chrome, survives Codex restarts) is still running, it holds a handle inside that folder and the delete fails withEBUSY. The reconcile then aborts mid-way, leaving the runtime marketplace partially deleted (onlyplugins\chromeremains;.agents\plugins\marketplace.jsonis gone).Consequences after every restart while Chrome's host is alive:
.codex\plugins\cache\openai-bundled\computer-use\<version>) is never populated for a new bundled plugin version after an app update. The CU helper resolver builds its path from the bundled manifest version (plugin.json→localVersion), so it points at a non-existent directory and throwsWindows Computer Use helper paths are unavailableeven thoughcodex-computer-use.exeships in the app bundle.Key log lines from one startup (build 26.602.9276.0):
The lock holder (confirmed with a rename test + process inspection): a stale
extension-host.exerunning since a previous session, command lineextension-host.exe chrome-extension://hehggadaopoacecdllhhajmbjkdcmajg/ --parent-window=0, image path.codex\plugins\cache\openai-bundled\chrome\latest\extension-host\windows\x64\extension-host.exe. It is launched by Chrome (native messaging), so quitting/restarting Codex does not stop it — one stale host breaks every subsequent launch.What steps can reproduce the bug?
extension-host.exeis running).bundled_plugins_marketplace_resolve_failed errorCode=EBUSY, then Computer Use + Chrome disappear from Plugins, and the computer-use native pipe loops"Windows Computer Use helper paths are unavailable".What is the expected behavior?
Startup reconcile should tolerate a running extension-host: plugins should not vanish after a restart, and the Computer Use helper should start.
Additional information
Verified workaround (root-cause confirmation)
Kill the Chrome-extension host right before/while launching Codex so the reconcile window completes cleanly:
With this, the same build goes from permanently broken to fully working (verified across 5+ restarts), which confirms the race is the root cause. The host respawns afterwards and Chrome control keeps working.
Suggested fixes
EBUSYon individual entries as non-fatal (skip + retry) rather than aborting the whole reconcile, so other plugins (computer-use, marketplace.json) still get materialized.extension-host.exebefore the reconcile delete..tmprebuild so a failed.tmpdelete can't leave the Computer Use helper cache unstaged after an app update.Environment
hehggadaopoacecdllhhajmbjkdcmajg)Possibly related: #25962, #26204 (same user-visible symptom "Computer Use unavailable" on Windows; the mechanism above may explain them).