Windows Desktop WSL workspace: node_repl/Browser/Chrome fail during sandbox ACL setup on \\wsl.localhost UNC path

Open 💬 1 comment Opened May 22, 2026 by eschulma

What version of the Codex App are you using (From “About Codex” dialog)?

26.519.3891.0

What subscription do you have?

Pro $200

What platform is your computer?

Microsoft Windows NT 10.0.22631.0 x64

What issue are you seeing?

In a Codex Desktop thread attached to a WSL UNC workspace, both the bundled Browser plugin and Chrome plugin fail before any browser automation code can run.

The mcp__node_repl__js tool is exposed, but even a minimal call like:

nodeRepl.write("ping")

fails with:

node_repl kernel exited unexpectedly
node_repl diagnostics: {
  "kernel_status": "running",
  "kernel_stderr_tail": "windows sandbox failed: setup refresh failed with status exit code: 1",
  "reason": "stdout_eof"
}

This also prevents:

@Browser / in-app browser automation
@chrome / Chrome extension automation

Sandbox log detail

The short error appears to hide a Windows ACL failure on the WSL UNC workspace path:

setup refresh: spawning ... codex-windows-sandbox-setup.exe
(cwd=\\wsl.localhost\Ubuntu\home\<user>\src\github.com\<org>\webapp)

write mask check failed on \\?\UNC\wsl.localhost\Ubuntu\home\<user>\src\github.com\<org>\webapp for sandbox_group:
GetSecurityInfo failed ...: 1

write mask check failed on \\?\UNC\wsl.localhost\Ubuntu\home\<user>\src\github.com\<org>\webapp for workspace_cap:
GetSecurityInfo failed ...: 1

write ACE grant failed on \\?\UNC\wsl.localhost\Ubuntu\home\<user>\src\github.com\<org>\webapp:
GetSecurityInfo failed ...: 1

deny ACE failed on ...\.git:
GetNamedSecurityInfoW failed: 1

setup refresh completed with errors
setup error: setup refresh had errors

What steps can reproduce the bug?

  1. On Windows with WSL2 Ubuntu, open Codex Desktop.
  2. Add/open a project whose workspace root is a WSL UNC path, for example:

``text
\\wsl.localhost\Ubuntu\home\<user>\src\github.com\<org>\<repo>
``

  1. Start a new Codex Desktop thread in that WSL workspace.
  2. Confirm the bundled Browser and/or Chrome plugin is enabled.
  3. Ask Codex to use Browser or Chrome, for example:

``text
Open example.com using [@Browser](plugin://browser@openai-bundled)
``

or:

``text
Does [@chrome](plugin://chrome@openai-bundled) work?
``

  1. The browser skill loads and the mcp__node_repl__js tool is available, but the Node REPL kernel exits before any browser code can run.

Minimal reproduction without Browser/Chrome-specific code:

nodeRepl.write("ping")

Observed result:

node_repl kernel exited unexpectedly

node_repl diagnostics: {
  "kernel_status": "running",
  "kernel_stderr_tail": "windows sandbox failed: setup refresh failed with status exit code: 1",
  "reason": "stdout_eof"
}

Browser-specific reproduction attempted:

if (!globalThis.agent) {
  const { setupBrowserRuntime } = await import("file:///C:/Users/<user>/.codex/plugins/cache/openai-bundled/browser/<version>/scripts/browser-client.mjs");
  await setupBrowserRuntime({ globals: globalThis });
}
if (!globalThis.browser) {
  globalThis.browser = await agent.browsers.get("iab");
}
await browser.nameSession("Example.com");
const tab = await browser.tabs.new();
await tab.goto("https://example.com");

Chrome-specific reproduction attempted:

if (!globalThis.agent) {
  const { setupBrowserRuntime } = await import("file:///C:/Users/<user>/.codex/plugins/cache/openai-bundled/chrome/<version>/scripts/browser-client.mjs");
  await setupBrowserRuntime({ globals: globalThis });
}
if (!globalThis.chromeBrowser) {
  globalThis.chromeBrowser = await agent.browsers.get("extension");
}
await chromeBrowser.nameSession("Chrome smoke test");
const openTabs = await chromeBrowser.user.openTabs();

Both Browser and Chrome fail before the imports or browser-client setup can complete, with the same node_repl sandbox setup error.

Relevant sandbox log excerpt:

setup refresh: spawning ... codex-windows-sandbox-setup.exe
(cwd=\\wsl.localhost\Ubuntu\home\<user>\src\github.com\<org>\<repo>)

write mask check failed on \\?\UNC\wsl.localhost\Ubuntu\home\<user>\src\github.com\<org>\<repo> for sandbox_group:
GetSecurityInfo failed ...: 1

write ACE grant failed on \\?\UNC\wsl.localhost\Ubuntu\home\<user>\src\github.com\<org>\<repo>:
GetSecurityInfo failed ...: 1

deny ACE failed on ...\.git:
GetNamedSecurityInfoW failed: 1

setup refresh completed with errors
setup error: setup refresh had errors

Session id from the failing thread:

0230a6c7bc844e1d83c2ddae4dd5d9f1

Context/token usage does not appear to be relevant. The failure happens at tool startup before user JavaScript runs, including for the one-line nodeRepl.write("ping") check.

What is the expected behavior?

Browser/Chrome automation should work from a WSL workspace, or node_repl should avoid using the WSL UNC workspace as the Windows process cwd / sandbox ACL target.

At minimum, the error should surface the underlying GetSecurityInfo failed / UNC ACL failure instead of only reporting:

windows sandbox failed: setup refresh failed with status exit code: 1

Additional information

WSL bridge CLI: codex-cli 0.133.0-alpha.1
WSL kernel:
Linux THINKPADP16 5.15.153.1-microsoft-standard-WSL2 x86_64 GNU/Linux

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗