Windows Codex Desktop: browser-use@openai-bundled 0.1.0-alpha2 cache is missing scripts/browser-client.mjs
### What version of the Codex App are you using?
Codex Desktop for Windows:
OpenAI.Codex_26.506.2212.0_x64__2p2nqsd0c76g0
Local bundled plugin versions observed:
chrome@openai-bundled: 0.1.7
browser-use@openai-bundled: 0.1.0-alpha2
What platform is your computer?
Windows x64.
What issue are you seeing?
The bundled browser-use@openai-bundled plugin cache for version 0.1.0-alpha2 is missing the runtime file that its own skill instructions require:
%USERPROFILE%\.codex\plugins\cache\openai-bundled\browser-use\0.1.0-alpha2\scripts\browser-client.mjs
The file does not exist. The browser-use plugin cache only contains:
skills\browser\SKILL.md
skills\browser\agents\openai.yaml
However, skills/browser/SKILL.md explicitly says the browser client module is available at scripts/browser-client.mjs and instructs agents to stop if that path cannot be found:
The browser-client module is the core entry point for browser use, and is available under scripts/browser-client.mjs.
IMPORTANT: If this path cannot be found, stop and report that this plugin is missing scripts/browser-client.mjs.
This means the direct @browser-use / in-app browser skill path cannot be bootstrapped as documented.
Reproduction
- On Windows Codex Desktop, enable/use bundled Browser Use:
[@浏览器](plugin://browser-use@openai-bundled)
- Inspect the active plugin cache:
Get-ChildItem -LiteralPath '%USERPROFILE%\.codex\plugins\cache\openai-bundled\browser-use\0.1.0-alpha2' -Recurse -File | Where-Object { $_.FullName -notmatch '\\node_modules\\' }
- Observe that
scripts/browser-client.mjsis absent.
- Attempt to follow the skill's documented bootstrap:
const { setupAtlasRuntime } = await import(
'file:///<user-profile>/.codex/plugins/cache/openai-bundled/browser-use/0.1.0-alpha2/scripts/browser-client.mjs'
);
- The import fails because the module is missing.
Expected behavior
One of these should be true:
browser-use@openai-bundled/0.1.0-alpha2should includescripts/browser-client.mjs, matching itsSKILL.md; or- the skill instructions should point at the correct shared runtime path; or
- Codex should not expose the browser-use skill as usable when the required runtime file is missing.
Actual behavior
The plugin is exposed with instructions that depend on a missing runtime file.
Using the Chrome plugin's bundled browser client instead:
%USERPROFILE%\.codex\plugins\cache\openai-bundled\chrome\0.1.7\scripts\browser-client.mjs
can enumerate both browser backends (extension Chrome and iab Codex In-app Browser), which suggests the runtime exists elsewhere, but not under the browser-use plugin path promised by its own skill.
Additional observed behavior
While investigating this, I also reproduced the existing Browser Use external-navigation preflight failure:
- Chrome extension backend can be listed/created.
- In-app browser backend can be listed and can screenshot
about:blank. - Navigating either backend to Google search is rejected before page load with:
Browser Use rejected this action due to browser security policy. Reason: Browser Use cannot determine if https://www.google.com/search is allowed.
The packed browser-client.mjs performs this check through:
https://chatgpt.com/backend-api/aura/site_status?site_url=...&url_request_source=codex_browser_use
Related issues for the navigation/preflight side:
- #19270
- #21710
- #21955
This issue is specifically about the browser-use@openai-bundled/0.1.0-alpha2 package/cache mismatch: the skill references scripts/browser-client.mjs, but the file is absent from the active plugin cache.
Auth/provider note
This repro was collected in a setup that uses a third-party / OpenAI-compatible API provider for model requests, not a ChatGPT web-account login session.
Because of that, there may be no ChatGPT account login state available to the Browser Use runtime. If the aura/site_status preflight requires a ChatGPT-authenticated session, that should be surfaced explicitly as an auth/provider-state problem. The current user-facing error only says Browser Use cannot determine whether the target URL is allowed, which makes it look like a target-site policy issue rather than a missing ChatGPT login/session preflight dependency.
This may overlap with #21710, but the packaging issue above still remains: browser-use@openai-bundled/0.1.0-alpha2 points at a missing scripts/browser-client.mjs in its own active plugin cache.
3 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
I can reproduce what looks like the same class of issue on a newer Windows Codex Desktop build, but with the renamed/newer bundled plugin:
The important difference from the original report is that the source bundled marketplace copy is complete after app start, but the active plugin cache is rewritten into an incomplete state.
After a clean-ish reset without restoring the old global state, and after disabling/exiting Kaspersky to rule out AV interference, every Codex restart reproduced this state:
The cache is missing the browser plugin entry/runtime files required by its own skill bootstrap:
At the same time,
computer-use@openai-bundled/26.527.31326remains intact:Runtime behavior matches the missing cache files:
Overlay-copying the full source plugin directory back into the active cache immediately fixes the browser runtime for the current session:
After that, importing
scripts/browser-client.mjssucceeds and the in-app browser can be enumerated. But after the next Codex restart, the browser cache is pruned/rewritten back to60/342again.So this no longer looks like only an old
browser-use@0.1.0-alpha2packaging mismatch. On26.527, the bundled marketplace source is complete, but Codex Desktop's startup/plugin cache reconciliation appears to populate or prune the activebrowser@openai-bundledcache incorrectly on Windows.I maintain WinBridge Recovery for Windows Codex Desktop bundled-plugin cache recovery: https://github.com/zemeng5208/winbridge-recovery
The newer reproduction in this thread is an unusually clear match for what the project validates: the bundled marketplace source is complete (
342Browser files), while the active versioned Browser cache is rewritten to an incomplete subset (60files) and is missing.codex-plugin/plugin.json,scripts/browser-client.mjs, and runtime dependencies. Restoring the complete source makes Browser work immediately, then the next restart corrupts/prunes the cache again.WinBridge v3.1.1 compares the current official AppX bundled source against the active marketplace and versioned plugin cache/
latestrather than trusting “directory exists” as healthy. It can stage a complete user-owned cache from the already installed official package, verify required manifests/files and SHA-256 content, retain rollback data, and switch only after validation passes. The healthy fast path skips repair entirely.The recurring rewrite on the next Codex restart is still an upstream Desktop reconcile bug, so a local recovery tool cannot guarantee the app will never damage the cache again. But it can detect the 60/342-style partial state and restore it safely instead of requiring users to manually overlay plugin trees after every failure.
It does not modify WindowsApps ownership/ACLs or patch OpenAI's plugin code.