codex - 💡(How to fix) Fix Windows Desktop WSL workspace: node_repl/Browser/Chrome fail during sandbox ACL setup on \\wsl.localhost UNC path

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Error Message

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

Code Example

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"
}

---

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

---

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

---

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

---

nodeRepl.write("ping")

---

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"
}

---

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");

---

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();

---

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

---

0230a6c7bc844e1d83c2ddae4dd5d9f1
RAW_BUFFERClick to expand / collapse

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:

    \\wsl.localhost\Ubuntu\home\<user>\src\github.com\<org>\<repo>
  3. Start a new Codex Desktop thread in that WSL workspace.

  4. Confirm the bundled Browser and/or Chrome plugin is enabled.

  5. Ask Codex to use Browser or Chrome, for example:

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

    or:

    Does [@chrome](plugin://chrome@openai-bundled) work?
  6. 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

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING