Skip to content

Windows: Browser tool fails to load in MXC (realpath EPERM), neither Chrome nor Edge works #53045

Description

@lovemilliejiang-bot

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

26.1007.21434(Build 13901,prod)

What subscription do you have?

ChatGPT Plus

What platform is your computer?

Microsoft Windows NT 10.0.26200.0 x64 系统版本:25H2 OS Build:26200.9457

What issue are you seeing?

Windows 桌面端无法控制 Chrome 和 Edge。当前直接验证到的失败发生在浏览器组件加载阶段,尚未进入浏览器选择或标签页操作。

模块加载报错如下(用户名已隐藏):

Failed to resolve module "C:/Users//.codex/plugins/cache/openai-bundled/chrome/26.928.21956/scripts/browser-client.mjs": EPERM: operation not permitted, realpath 'C:\Users<user>.codex\plugins\cache\openai-bundled\chrome\26.928.21956\scripts\browser-client.mjs'

诊断发现:

  • 目标文件存在,stat 和只读打开成功。
  • fs.realpathSync 成功,但 fs.realpathSync.native 返回 EPERM,errno 为 -4048。
  • 实际工具启动器显式传入 windows.sandbox="mxc"。
  • 即使用户配置设置 windows.sandbox="elevated"、features.prefer_mxc=false,实际浏览器工具仍使用 MXC 并报错。

问题持续存在,目前未恢复浏览器控制。

What steps can reproduce the bug?

Feedback ID:01a12927-2c96-7230-a8b9-2a1493fe96cd
Chat ID:01a12927-2c96-7230-a8b9-2a1493fe96cd

用户操作:

  1. 在 Windows Codex 桌面端发起 Chrome 浏览器任务,例如:“用 Chrome 打开 https://example.com,然后告诉我网页标题。”
  2. 工具尝试加载 Chrome 插件的 browser-client.mjs。
  3. 模块加载立即返回 realpath EPERM,任务无法继续。

工具层复现代码(替换 为本机用户名):
await import("C:/Users//.codex/plugins/cache/openai-bundled/chrome/26.928.21956/scripts/browser-client.mjs");

对照验证:

  1. 在 MXC 只读沙箱中,对同一文件分别调用 fs.realpathSync 和 fs.realpathSync.native。
  2. JavaScript realpath 成功,原生 realpath 返回 EPERM。
  3. 在 legacy elevated 只读沙箱中,原生 realpath 和模块导入均成功。
  4. 实际浏览器工具复测仍失败,包括重置工具执行会话后的复测。

What is the expected behavior?

浏览器工具应能在保留沙箱隔离和路径安全检查的前提下正常加载组件,并分别连接 Chrome 和 Edge。

Chrome 应能打开 https://example.com 并读取真实网页标题;Edge 应能正常读取标签页列表。

如果 MXC 下存在兼容性问题,希望提供受支持的 legacy elevated 切换方式,或修复原生路径解析兼容性。

Additional information

进一步的本机对照结果:

  • MXC 中 GetFinalPathNameByHandleW 返回 NT 设备路径或不带卷名的路径时成功;请求带盘符路径时失败,Windows 错误为 5(ERROR_ACCESS_DENIED)。
  • MXC 中 QueryDosDeviceW(C:/E:)、GetVolumeNameForVolumeMountPointW 和只读打开 MountPointManager 同样返回错误 5。
  • 沙箱外及 legacy elevated 对照环境中,上述查询成功。
  • MXC 内 TokenIsAppContainer=1;legacy elevated 内为 0。对照进程均未使用管理员提升令牌。
  • 已有两套官方 Node(v24.19.0、v24.21.0,均使用 libuv 1.52.1)在 MXC 中均出现相同的原生 realpath 错误。
  • 本地工具 kernel.js 的 resolvePathSpecifier 在第 523 行调用 fs.realpathSync.native(candidate),失败后抛出模块解析错误。
  • 桌面端更新检查返回 up_to_date。

这些结果定位到共享模块加载与沙箱路径解析环节,尚不能据此判断 Chrome / Edge 各自的扩展或 native host 是否正常。也尚未确认具体责任归属或可修复此问题的版本号。

请协助检查工具启动器强制指定 MXC,以及 MXC 内原生路径解析失败的问题。

Activity

  1. added
    bugSomething isn't working
    windows-osIssues related to Codex on Windows systems
    sandboxIssues related to permissions or sandboxing
    on Oct 11, 2026
  2. changed the title [-]Windows:浏览器工具在 MXC 中加载失败(realpath EPERM),Chrome / Edge 均无法使用[/-] [+]Windows: Browser tool fails to load in MXC (realpath EPERM), neither Chrome nor Edge works[/+] on Oct 11, 2026
  3. github-actions commented on Oct 11, 2026

    @github-actions
    Contributor

    English translation:

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

    26.1007.21434 (Build 13901, prod)

    What subscription do you have?

    ChatGPT Plus

    What platform is your computer?

    Microsoft Windows NT 10.0.26200.0 x64 System version: 25H2 OS Build: 26200.9457

    What issue are you seeing?

    The Windows desktop app cannot control Chrome or Edge. The failure directly verified so far occurs during browser component loading, before browser selection or tab operations begin.

    The module loading error is as follows (username redacted):

    Failed to resolve module "C:/Users//.codex/plugins/cache/openai-bundled/chrome/26.928.21956/scripts/browser-client.mjs": EPERM: operation not permitted, realpath 'C:\Users<user>.codex\plugins\cache\openai-bundled\chrome\26.928.21956\scripts\browser-client.mjs'

    Diagnostic findings:

    • The target file exists, and stat and opening it read-only succeed.
    • fs.realpathSync succeeds, but fs.realpathSync.native returns EPERM, with errno -4048.
    • The actual tool launcher explicitly passes windows.sandbox="mxc".
    • Even when the user configuration sets windows.sandbox="elevated" and features.prefer_mxc=false, the actual browser tool still uses MXC and reports the error.

    The issue persists, and browser control has not been restored.

    What steps can reproduce the bug?

    Feedback ID: 01a12927-2c96-7230-a8b9-2a1493fe96cd
    Chat ID: 01a12927-2c96-7230-a8b9-2a1493fe96cd

    User actions:

    1. Start a Chrome browser task in the Windows Codex desktop app, for example: “Use Chrome to open https://example.com, then tell me the page title.”
    2. The tool attempts to load the Chrome plugin's browser-client.mjs.
    3. Module loading immediately returns realpath EPERM, and the task cannot continue.

    Tool-level reproduction code (replace with the local username):
    await import("C:/Users//.codex/plugins/cache/openai-bundled/chrome/26.928.21956/scripts/browser-client.mjs");

    Comparative verification:

    1. In the MXC read-only sandbox, call fs.realpathSync and fs.realpathSync.native on the same file.
    2. JavaScript realpath succeeds, while native realpath returns EPERM.
    3. In the legacy elevated read-only sandbox, both native realpath and module import succeed.
    4. Retesting the actual browser tool still fails, including after resetting the tool execution session.

    What is the expected behavior?

    The browser tool should load its components normally while retaining sandbox isolation and path safety checks, and connect to Chrome and Edge respectively.

    Chrome should be able to open https://example.com and read the actual page title; Edge should be able to read the tab list normally.

    If there is a compatibility issue under MXC, please provide a supported way to switch to legacy elevated, or fix native path resolution compatibility.

    Additional information

    Further local comparison results:

    • In MXC, GetFinalPathNameByHandleW succeeds when returning an NT device path or a path without a volume name; requesting a path with a drive letter fails with Windows error 5 (ERROR_ACCESS_DENIED).
    • In MXC, QueryDosDeviceW(C:/E:), GetVolumeNameForVolumeMountPointW, and opening MountPointManager read-only also return error 5.
    • Outside the sandbox and in the legacy elevated comparison environment, these queries succeed.
    • TokenIsAppContainer=1 inside MXC; it is 0 inside legacy elevated. Neither comparison process used an administrator-elevated token.
    • Two official Node versions (v24.19.0 and v24.21.0, both using libuv 1.52.1) exhibit the same native realpath error in MXC.
    • resolvePathSpecifier in the local tool's kernel.js calls fs.realpathSync.native(candidate) at line 523 and throws a module resolution error when it fails.
    • The desktop app's update check returns up_to_date.

    These results locate the issue in shared module loading and sandbox path resolution. They do not yet establish whether the individual Chrome / Edge extensions or native hosts are working normally. The specific component responsible or a version that fixes this issue has also not yet been confirmed.

    Please help investigate the tool launcher's forced use of MXC and the native path resolution failure inside MXC.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    appIssues related to the Codex desktop appbrowserbugSomething isn't workingsandboxIssues related to permissions or sandboxingwindows-osIssues related to Codex on Windows systems

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions