Repository navigation
[Windows app 26.903.8094.0] In-app browser discovery fails with nodeRepl.fetch request failed after cua_repl reset #44117
Description
What version of the Codex App are you using?
- Installed Windows package, queried locally:
OpenAI.Codex 26.903.8094.0. - Desktop app-server executable version, queried locally:
codex-cli 0.153.4. - Browser control tool:
mcp__cua_repl, documentedcuaAPI.
What platform is your computer?
Windows x64. Observed on 2026-09-09.
What issue are you seeing?
The app reported two open in-app browser tabs and a selected loopback preview URL. The user explicitly mentioned the Browser tool, but even the initial inventory call failed:
await cua.getState();The result was:
{
"apps": [],
"browsers": [],
"errors": [
"Browsers: Error: nodeRepl.fetch request failed"
]
}The tool then emitted Error: nodeRepl.fetch request failed. Recent attempts took approximately 22–24 seconds each.
The empty browser array is returned alongside an inventory error; it should not be interpreted as evidence that the user has no browser tabs open. No browser or tab handle could be obtained during these failed attempts.
What steps can reproduce the bug?
Sequence observed in this affected session (not a fresh-install or cross-machine reproduction):
- Have the in-app browser open with a local preview selected.
- Ask the agent to inspect that browser, including an explicit Browser mention.
- Call the documented inventory API
await cua.getState();. - Observe the error above instead of browser/tab inventory.
- Call
mcp__cua_repl.js_reset. The tool reportsjs kernel reset. - In the fresh session, execute exactly one first-use API call:
await cua.getState();. - Initial tool documentation is returned, but browser inventory again fails with the same error.
Repeated inventory attempts and one documented REPL reset did not restore the connection. A full application restart/reinstall was not tested for this occurrence.
Control checks and limits
- An independent HTTP check of the loopback preview returned HTTP 200 and its expected page title. This confirms that the web server responded, not that the current browser rendering was visually verified.
- App-supplied UI context reported two in-app browser tabs and the selected preview URL. Because browser-control inventory failed, current page contents could not be independently read or screenshotted through that tool.
- Earlier in this task, the same in-app-browser workflow could open, inspect and screenshot the preview. The trigger for the later connection failure is unknown.
- The failing operation was inventory, before any navigation or page interaction. It did not return a URL-policy denial or command-approval rejection.
- No proxy, firewall, browser profile, credentials, or security settings were modified to diagnose this browser failure. Proxy/environment inheritance and the underlying transport failure have not been established as causes.
What is the expected behavior?
The tool should discover the available in-app browser and tabs, or provide an actionable diagnostic identifying which connection/setup stage failed. A documented reset should either re-establish the connection or clearly state what additional recovery is needed.
Related reports
- Browser Use iab backend can read tabs but tab.goto fails with nodeRepl.fetch request failed #19519: same error in the in-app browser, but that report could list/read tabs and failed during navigation. This occurrence fails at initial inventory.
- [macOS, 26.901.51231] Chrome is discovered, but browser-control calls fail with nodeRepl.fetch request failed #43787: similar error persisting after a fresh runtime, but on macOS with external Chrome. No shared root cause is asserted.
This report contains no personal filesystem paths, account identifiers, private site domains, credentials, screenshots, or raw session logs.
Activity
github-actions commentedon Sep 9, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Yy-9519 commentedon Sep 16, 2026
Windows Codex 无法控制 Chrome:代理修复记录
故障现象
Chrome 和 ChatGPT 扩展已安装,但 Codex 读取浏览器状态或列出标签页时,约 21 秒后报错:
本机定位结果
读取运行中进程的实际环境后发现:
.codex/.env已配置 HTTP/HTTPS 代理。node_repl没有收到。node_repl出现公网 443 连接持续处于SYN_SENT的情况。因此,本机问题定位在浏览器控制进程的代理环境传递上;具体是哪一层过滤或未传递变量,尚未完全确认。
修复方式
先备份当前版本实际使用的 CUA 启动文件,再在启动
node_repl的spawn(..., { env: ... })中加入:注意:
7897是本机 HTTP/mixed 代理端口,其他电脑应按实际端口调整。本机修改文件为:
不同版本的路径和文件名可能不同,不能直接照抄。
完成修改和语法检查后,完全退出并重启 Codex。
修复验证
重启后实际验证通过:
listTabs成功,耗时约 0.66 秒。https://example.com/成功。这验证了真实浏览器操作,不只是代理端口或独立网络探测通过。
为什么只在
.codex/.env加NODE_USE_ENV_PROXY=1没用?做过排除补丁干扰的对照测试:
.env中加入NODE_USE_ENV_PROXY=1。launch.js恢复原版。结果:
1浏览器再次在约 21.98 秒后报 fetch 错误。
所以,不能简单说这个变量“无效”:本机测试表明,它没有通过
.env传入需要它的浏览器控制进程。直接在启动子进程时注入代理环境,才是本次验证有效的方式。失败后已恢复之前有效的启动补丁和测试前的
.env。恢复后的文件仍需重启 Codex 才能生效。Codex 更新后的注意事项
这是临时绕过方案,不是官方持久配置接口。
Codex 更新可能覆盖补丁,或改用新的运行时目录,导致修复失效;不是每次更新都一定失效。
更新后若问题复现:
回滚时,恢复同版本的原文件备份,再重启 Codex。
参考
#44364 (comment)
该 issue 使用旧版本
launch.mjs;本机使用的是运行时包内的launch.js,应以实际启动链路为准。