Repository navigation
WSL agent: bad cwd and Chrome/Computer Use unavailable #30435
Description
Component
Codex Desktop for Windows / WSL agent mode / bundled plugins (chrome, computer-use) / path translation
Version / environment
- Codex Desktop:
26.623.5546.0 - Codex CLI:
0.142.3 - Platform: Windows 11 + WSL2 Ubuntu
- Setting:
runCodexInWindowsSubsystemForLinux = true CODEX_CLI_PATH: unset
Summary
This is a follow-up to #28086.
The original missing Linux codex binary part appears partially fixed on my machine: WSL agent mode now starts with a Linux codex binary, and it no longer needs a user-provided CODEX_CLI_PATH.
However, after switching Codex Desktop to WSL agent mode, the resulting session still has two separate problems:
- The workspace/cwd and sandbox paths are malformed by mixing a Windows install-resource path with a Windows user path.
- Bundled Windows integration plugins such as
chromeandcomputer-usebecome unavailable or fail their Windows path handling.
Evidence: WSL agent is actually active
Inside the Codex session after switching Agent Environment to WSL:
uname=Linux
WSL_DISTRO_NAME=Ubuntu
codex-cli 0.142.3
The relocated WSL binary is a Linux ELF and runs successfully:
/mnt/c/Users/kangm/.codex/bin/wsl/d3a1a875cd8d759f/codex: ELF 64-bit LSB pie executable, x86-64, static-pie linked, stripped
codex-cli 0.142.3
Desktop log also shows WSL spawning rather than launching the Windows codex.exe directly:
[spawn-async] Spawning process inside WSL
[StdioConnection] stdio_transport_spawned executablePath=C:\Users\kangm\.codex\bin\wsl\d3a1a875cd8d759f\codex spawnCommand=wsl.exe
Problem 1: malformed cwd / sandbox path
The environment context and sandbox policy used this malformed path:
/mnt/c/Program Files/WindowsApps/OpenAI.Codex_26.623.5546.0_x64__2p2nqsd0c76g0/app/resources/C:\Users\kangm\Documents\Codex\2026-06-28\new-chat-2
That path combines the app install resources directory with a Windows C:\Users\... path. The expected WSL path should be closer to:
/mnt/c/Users/kangm/Documents/Codex/2026-06-28/new-chat-2
Observed effect: shell commands only worked when an explicit valid workdir such as /tmp was provided. Without an explicit workdir, process creation failed because the default cwd did not exist.
Problem 2: Chrome / Browser is disabled in WSL mode
The current WSL-mode desktop log contains:
browser_use_availability_resolved available=false browserPane=true platform=Windows reason=wsl-disabled release=26.623.42026
In a previous Windows-native session on the same install, the corresponding log line was:
browser_use_availability_resolved available=true browserPane=true platform=Windows reason=available release=26.623.42026
So the browser/Chrome integration appears to be explicitly disabled by WSL agent mode.
Problem 3: bundled plugin reconcile mistranslates WSL paths into invalid Windows paths
The same WSL-mode log contains this failure while reconciling the bundled Chrome plugin/native host:
bundled_plugins_marketplace_install_failed ... pluginName=chrome ...
ENOENT: no such file or directory, access 'C:\mnt\c\Users\kangm\.codex\plugins\cache\openai-bundled\chrome\26.623.42026'
The actual Windows path should be:
C:\Users\kangm\.codex\plugins\cache\openai-bundled\chrome\26.623.42026
The actual WSL path exists as:
/mnt/c/Users/kangm/.codex/plugins/cache/openai-bundled/chrome/26.623.42026
This looks like /mnt/c/... was converted incorrectly into C:\mnt\c\... instead of C:\....
Problem 4: Computer Use native pipe starts, but the current WSL agent session does not expose the expected tool entrypoint
The desktop log says the Windows native pipe started:
[computer-use-native-pipe] computer-use native pipe startup ready pipePath=\\.\pipe\codex-computer-use-... platform=win32
But in the WSL agent session, the node_repl js tool needed by the computer-use plugin was not exposed by tool discovery. Searching for node_repl js returned unrelated tools instead of the JavaScript execution tool.
Expected behavior
When WSL agent mode is enabled:
- Workspace/cwd/sandbox paths should be translated to valid WSL paths.
- Bundled plugin path reconciliation should not turn
/mnt/c/...into invalidC:\mnt\c\...Windows paths. - If
chrome/ Browser Use andcomputer-useare intentionally unsupported in WSL agent mode, the UI should make that explicit instead of presenting them as available plugins that fail or disappear at runtime. - If they are intended to work, the Windows helper/native-host paths should continue to be managed from the Windows side while the agent runs in WSL.
Related
Related to #28086, but this tracks the remaining WSL-mode cwd/path/plugin integration problems after the Linux codex binary startup path appears to have been partially fixed in 26.623.5546.0.
Activity
[-]Windows Desktop WSL agent starts, but cwd path is malformed and Chrome/Computer Use plugins are unavailable[/-][+]WSL agent: bad cwd and Chrome/Computer Use unavailable[/+]github-actions commentedon Jun 28, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
kangmingxuan commentedon Jun 28, 2026
I reviewed the suggested duplicates.
This is related to, but not a direct duplicate of, the linked issues:
sandboxCwdmapping in WSL.This issue is intended to track the current combined behavior on
26.623.5546.0: WSL agent now starts successfully, but cwd translation, Chrome, and Computer Use are still broken together in the same WSL-agent setup.th3nolo commentedon Jul 3, 2026
Adding another current repro from a newer Windows Desktop build.
Environment
Relevant config shape:
User-visible symptom
I can open the in-app browser pane and load an authenticated web page, but the agent cannot inspect or claim that tab. Browser setup loads the current browser client, but no browser backend is available to the WSL-backed thread.
Runtime checks from the agent side:
Using the old cached Browser Use client path also fails, but the cleaner current-client result is the empty backend list above.
Desktop log evidence
The key availability line matches this issue:
The browser sidebar itself is active/attached, so this is not simply that the pane is missing:
Bundled marketplace state also matches the WSL/path/plugin drift described here:
There is no active
browser-useplugin in the generatedopenai-bundledmarketplace, although stale cache entries from the olderbrowser-use/0.1.0-alpha1era still exist locally.The same session also shows the invalid Windows path synthesis pattern:
Expected Windows path shape would be closer to:
Additional observation
Computer Use native pipe startup appears to happen on the Windows host:
But from the WSL-backed agent thread, Browser Use still resolves no usable browser backends.
Impact
This blocks my workflow where I intentionally open/log into a site in the Codex in-app browser and expect the agent to read the visible page. The page is visible in the app, but the WSL-backed runtime cannot claim or inspect it.
Expected behavior
Either:
The current state is confusing because the browser pane exists and can show the page, but the runtime capability gate returns
reason=wsl-disabledandagent.browsers.list()is empty.CissiBot commentedon Jul 21, 2026
Fresh reproduction on 26.715 (2026-07-21): all three Windows-control surfaces remain blocked in a WSL-backed thread
I can reproduce the combined behavior tracked here on the current 26.715 Windows Desktop build. This is not a missing-plugin or Chrome-extension-only failure: the shared JavaScript bridge rejects WSL sandbox metadata before any Browser, Chrome, or Computer Use client code executes.
Environment
The
browser,chrome, andcomputer-usebundles are present in the local bundled-plugin cache at the same release. The generatednode_replMCP server is also enabled and thenode_repl/jstool is visible.Minimal reproduction
/mnt/c/Users/<user>/Documents/Codex/<workspace>.node_repl/jscall, or ask Codex to initialize the in-app Browser, Chrome control, or Computer Use.I reproduced this with both the Browser/Chrome bootstrap and the prescribed Computer Use bootstrap. Both fail at the same metadata-validation step, before their imported client modules run.
Why all three surfaces are affected
The generated MCP configuration shows a Windows-owned runtime behind the WSL-backed thread:
The current Desktop log independently shows:
Observed impact:
reason=wsl-disabled; agent control cannot initialize.node_repl/js, so it cannot reach extension/native-host discovery or any page interaction.sandboxCwdvalidation before it can use the pipe.This rules out website content, authentication, Chrome profile state, and the extension as the primary failing layer. A no-op JavaScript call fails before any of those layers are reached.
Additional path-translation evidence
The same current Desktop process repeatedly logs a separate bundled Chrome reconciliation failure that converts a WSL home path into an invalid Windows path:
The source cache exists at
/home/<wsl-user>/.codex/...;C:\home\...is not its valid Windows representation. This appears to be another manifestation of Windows/WSL path namespaces being mixed in the Desktop/plugin bridge.Expected behavior
For a WSL-backed thread invoking a Windows-owned MCP/runtime, Codex should normalize sandbox metadata into that server's path namespace before dispatch:
/mnt/c/...should become a valid Windows drive URI such asfile:///C:/...for the Windows process./home/...should use a valid Windows-accessible WSL/UNC representation, or the relevant MCP process should run in the WSL environment.C:\home\...orC:\mnt\c\....If these integrations are intentionally unsupported for WSL-backed threads, the app should clearly mark Browser, Chrome control, and Computer Use as unavailable in that mode and avoid presenting controls that fail only after invocation.
Related status
/mnt/csandboxCwdrejection./homecase and the separatewsl-disabledgate.reason=wsl-disabled) #25301 tracks Computer Use being unavailable when the app-server runs in WSL.mcp: add URI-native sandbox state metadata) was closed without merge; the current installed build still reproduces the failure.All local usernames, workspace names, pipe IDs, and runtime IDs above are redacted. I can provide a sanitized Desktop log excerpt if a maintainer needs it.
s243a commentedon Aug 14, 2026
Still reproducible on Codex Desktop for Windows build
26.803.10989.0with Ubuntu under WSL2.The persisted configuration is correct:
However, after an app update / task resume, the task was provisioned as Windows PowerShell with this malformed workspace root:
The intended WSL workspace is:
The current desktop logs also repeatedly show the same
/mnt/cconversion failure described in this issue. For example, a WSL path shaped like:is handed to the Windows workspace watcher as:
rather than:
That produces repeated
[git-init-watcher]ENOENTwarnings every five seconds. Earlier logs from the same installation show normalSpawning process inside WSLbehavior, so the setting and Ubuntu installation previously worked.Impact in the affected task:
wsl.exe -d Ubuntu -- bash -lc ...wrappers or remote connectors;This confirms the path/provisioning problem remains present in build
26.803.10989.0, rather than being limited to the26.623.*builds in the original report.romcharod-ui commentedon Aug 26, 2026
Current-version confirmation on Windows Store build 26.820.7780.0, WSL execution, with a ChatGPT Project-backed workspace mirror.
After the separate
mcp_servers.codex_appstartup regression was bypassed, the WSL agent task itself could start, but the Windows-side Git watcher repeatedly mistranslated the project workspace:The warning repeated every five seconds. After another reload/path-casing variation, the watcher attempted
C:\\users\\<user>\\...\\.git, which is at least a valid Windows root translation, but the ChatGPT Project mirror is intentionally not a Git repository, so the.gitwatch still failed and degraded to the workspace-root watch.This confirms the
/mnt/c/... -> C:\\mnt\\c\\...conversion defect remains present in 26.820.7780.0 and also affects the new ChatGPT Project mirror layout. The project name, account identifiers, task IDs, and private repository data are omitted.timewet commentedon Oct 14, 2026
I found this existing report closely matches a Windows-to-WSL path translation failure observed on a newer desktop build, so I am adding a bounded reproduction rather than opening a duplicate.
Environment: Windows 11; Codex Desktop
26.1007.2314.0; WSL2 Ubuntu; bundled Linux Codex0.162.0-alpha.17.2. Identifying account, project, and package-directory values are redacted.Desktop observation: A WSL Agent task using a Windows-hosted ChatGPT project mirror logged a cwd shaped like:
The
git-init-watcherrecorded ENOENT at the malformed workspace root; the managed desktop command entry point also failed withFailed to create unified exec process: No such file or directory (os error 2). Specifying alternate per-command workdirs did not fix that original desktop failure.Read-only inspection of the shipped Windows bundle located a mirror-path producer using host-platform
node:path.join. I did not capture the entire dynamic handoff call stack, so this points to a Windows-to-Linux namespace conversion boundary, not a conclusively identified downstream function.Controlled isolation: With the same installed Linux Codex executable and its built-in
:read-onlysandbox, preserving the Linux argv from the Windowswsl.exe --execrequest:/mnt/d/...)C:\Users\<user>\...)/mnt/c/Users/<user>/.codex/.chatgpt-projects/<project>A separate file-write probe under
:read-onlywas denied and did not create a file. No sandbox bypass, ACL change, or permission relaxation was used.This isolates an invalid-cwd failure for the CLI reproducer, showing that the installed Linux Codex and its readonly sandbox work with a valid Linux cwd. It does not establish that cwd is the only missing object in the original Desktop unified-exec failure; the original full unified-exec argv and exact missing child launcher were not captured.
Could maintainers confirm whether this matches existing mirror-path conversion work, and whether the desktop handoff should normalize the mirror cwd and workspace/filesystem roots before dispatching to WSL? Happy to provide further redacted targeted diagnostics if useful.