You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Windows: Chrome control fails with nodeRepl.fetch request failed #44135
Chrome browser control fails on Windows with nodeRepl.fetch request failed.
Chrome was detected, but listing tabs failed. In-app browser tab listing succeeded in the same session. An attempt to open Edge through the control tool also failed.
Extension and native-host checks passed. Reinstalling the extension, restarting Windows and the app, and resetting the browser session did not resolve the issue. The app reports it is up to date.
Feedback ID: 01a07aca-9ad6-71d1-92ed-383061a55e95
Please advise on the underlying cause and a supported fix or workaround.
The same: It detects Chrome configurations and extensions, but after about 21 seconds of attempting to read tabs, it still reports a "nodeRepl.fetch request failed" error, making it impossible to interact with the web pages.
For anyone hitting this on Windows behind a local HTTP proxy / Clash / mihomo / v2rayN: one important thing to check is Node 24's environment-proxy opt-in.
Codex currently bundles Node 24.x for the browser/CUA runtime. Node's built-in fetch() does not automatically use HTTP_PROXY / HTTPS_PROXY unless environment proxy support is explicitly enabled with:
Then fully exit Codex/ChatGPT and make sure ChatGPT.exe, node_repl.exe, and extension-host.exe are no longer running before restarting. setx only affects newly started processes.
A useful diagnostic pattern is:
Browser Use works with TUN enabled.
It fails with TUN disabled with nodeRepl.fetch request failed.
HTTP_PROXY / HTTPS_PROXY are already present, but NODE_USE_ENV_PROXY is missing.
In that case, enabling NODE_USE_ENV_PROXY=1 is worth testing before reinstalling Codex or changing WinHTTP settings.
Also keep NO_PROXY=localhost,127.0.0.1,::1 so local browser/native-host RPC is not sent through the proxy.
There is a more detailed Windows reproduction/workaround in #44364, including a verified launcher-level environment injection for cases where Codex's generated plugin runtime does not inherit the user's proxy environment.
Same issue here, still reproducible today (2026-09-15).
On Windows 10, Codex Desktop's browser-control inventory always fails with nodeRepl.fetch request failed. It returns apps: [] and browsers: [] even though Chrome is running and the official Chrome extension side panel reports connected. The issue persists after restarting Chrome, the extension host, Codex, and the CUA bridge. HTTP and Responses WebSocket diagnostics are healthy after enabling respect_system_proxy = true; therefore this appears to be an internal CUA/node_repl bridge failure rather than a network or website issue. Multiple node_repl.exe and cua-repl.mjs child processes have been observed under the Codex app-server. Please advise how to reset/reinstall the browser-control bridge cleanly or collect a supported diagnostic bundle.
Browsers: Error: nodeRepl.fetch request failed
apps: []
browsers: []
Error: nodeRepl.fetch request failed
at ...\kernel.js:1595:16
at ...\worker-runtime.js:396:5
at ...\kernel.js:1871:11
at Socket.<anonymous> (...\worker-runtime.js:434:9)
Environment
Windows 10 Pro 64-bit, 10.0.19045, system language zh-CN
Follow-up with a narrowed-down root cause on my setup (Windows 10 19045, Codex Desktop 26.908.4834.0, CUA runtime a708e72b10c27b59, local Clash HTTP proxy on 127.0.0.1:7897).
Confirmed: enabling the proxy client's TUN mode makes browser control pass immediately (browser inventory, tab listing, navigation all work). Disabling TUN reproduces nodeRepl.fetch request failed / Unable to load browser request-header policy. Same pattern as #44364.
Why the launch.mjs / cua-repl.mjs proxy patches from #44364 / #44801 do not help on this version:
On 26.908.x there is no launch.mjs; the bridge is started from .mcp.json running @oai/cua-repl/bin/cua-repl.mjs.
launch() spawns node_repl.exe with env: { ...process.env, ... } (full inheritance, no allowlist filtering), so injecting HTTP_PROXY / HTTPS_PROXY / NODE_USE_ENV_PROXY before launch() does reach node_repl.exe. NODE_REPL_UNTRUSTED_ENV_ALLOWLIST only controls what untrusted REPL cells can see; it does not affect the host's network layer.
node_repl.exe is a ~35 MB OpenAI-signed native executable, not a Node runtime (--version prints no Node version; it separately spawns node.exe v24.20.0 for kernel.js / trusted-worker.js). So NODE_USE_ENV_PROXY has no effect on it.
The Statsig / request-header-policy fetch (https://ab.chatgpt.com/v1/...) is issued via networkOverrideFunc: (url, init) => e.fetch(url, init), and e.fetch is authenticatedFetch, which serializes the request over IPC (type: "authenticated_fetch") to the node_repl.exe host. The native host performs the actual HTTP request.
That native host appears to ignore both HTTP_PROXY / HTTPS_PROXY in its environment and the Windows system proxy. respect_system_proxy = true fixes the main app's HTTP and Responses WebSocket, but does not reach this host.
So on this version the only working configuration is a transparent proxy (TUN). Everything else (env vars, launch.mjs / cua-repl.mjs patches, [mcp_servers.cua_repl.env] overrides) cannot influence the authenticated_fetch host.
Request: could node_repl.exe's authenticated-fetch path honor respect_system_proxy (or HTTP_PROXY / HTTPS_PROXY), the same way the main app already does? That would resolve this whole family of issues (#44135, #44364, #44383, #44697, #44801, #45249, #45340, #45576, and the macOS variant #21713 / #23504) for users behind a local proxy without requiring TUN.
Reset the control session using js_reset and retry: identical failure.
Completed diagnostics and recovery attempts:
User restarted Codex and manually opened the target website.
User subsequently reinstalled the browser plugin; failure still reproduced.
Official check-extension-installed.js --browser chrome --json passes: installed=true, enabled=true, registered=true, no disable reasons.
Official check-native-host-manifest.js --browser chrome --json passes: correct=true, registryMatchesManifestPath=true, missingExpectedOrigins=[].
Native host executable exists and its process was running during diagnosis.
Official open-chrome-window.js --browser chrome --json successfully opened a window in the selected profile, but browser discovery still failed.
Desktop logs showed the browser-use native pipe listening.
An earlier native computer-use observation of Chrome separately stopped with: "could not determine the current browser URL on Windows with enough confidence to enforce policy." The current CUA discovery attempts return the fetch error above, without that safety-stop message. These are observed symptoms; a shared root cause has not been established.
Expected: enumerate browser tabs and permit authorized browser interaction. Actual: no browser inventory is returned, blocking browser-based work entirely. Please investigate the Windows desktop/control-runtime communication path and provide a supported recovery procedure.
This report includes selected diagnostic facts only; no credentials, cookies, account identifiers, private browsing URLs, local user paths, or raw session logs are attached.
Codex detects two Chrome connections, but attempting to list tabs consistently fails with:
nodeRepl.fetch request failed
Additional diagnostics:
Windows
Chrome is detected successfully
Codex can establish outbound TCP connections to chatgpt.com:443
Clash logs confirm codex.exe -> chatgpt.com:443
The connection matches the ChatGPT proxy rule and is routed through the proxy
Normal ChatGPT WebSocket connectivity works (wss://ws.chatgpt.com returns 101 Switching Protocols)
Reinstalling/restarting Chrome/Codex does not resolve the issue
The failure occurs specifically when Codex attempts to retrieve the Chrome tab list
I also submitted diagnostics from the Codex app.
Feedback ID: 01a0bc79-a514-7411-9e62-81c6b429375a
The Codex UI reports: Detected two Chrome connections, but fetching tabs from both returns nodeRepl.fetch request failed.
Could you confirm whether this is the same underlying Windows browser-control issue, and whether the launch.js / proxy environment workaround discussed here is currently the recommended workaround?
Codex detects two Chrome connections, but attempting to list tabs consistently fails with:
nodeRepl.fetch request failed
Additional diagnostics:
Windows
Chrome is detected successfully
Codex can establish outbound TCP connections to chatgpt.com:443
Clash logs confirm codex.exe -> chatgpt.com:443
The connection matches the ChatGPT proxy rule and is routed through the proxy
Normal ChatGPT WebSocket connectivity works (wss://ws.chatgpt.com returns 101 Switching Protocols)
Reinstalling/restarting Chrome/Codex does not resolve the issue
The failure occurs specifically when Codex attempts to retrieve the Chrome tab list
I also submitted diagnostics from the Codex app.
Feedback ID: 01a0bc79-a514-7411-9e62-81c6b429375a
The Codex UI reports: Detected two Chrome connections, but fetching tabs from both returns nodeRepl.fetch request failed.
Could you confirm whether this is the same underlying Windows browser-control issue, and whether the launch.js / proxy environment workaround discussed here is currently the recommended workaround?
Codex detects two Chrome connections, but attempting to list tabs consistently fails with:
nodeRepl.fetch request failed
Additional diagnostics:
Windows
Chrome is detected successfully
Codex can establish outbound TCP connections to chatgpt.com:443
Clash logs confirm codex.exe -> chatgpt.com:443
The connection matches the ChatGPT proxy rule and is routed through the proxy
Normal ChatGPT WebSocket connectivity works (wss://ws.chatgpt.com returns 101 Switching Protocols)
Reinstalling/restarting Chrome/Codex does not resolve the issue
The failure occurs specifically when Codex attempts to retrieve the Chrome tab list
I also submitted diagnostics from the Codex app.
Feedback ID: 01a0bc79-a514-7411-9e62-81c6b429375a
The Codex UI reports: Detected two Chrome connections, but fetching tabs from both returns nodeRepl.fetch request failed.
Could you confirm whether this is the same underlying Windows browser-control issue, and whether the launch.js / proxy environment workaround discussed here is currently the recommended workaround?
This adds measured macOS evidence for the TUN suggestion in this thread. We did not verify a Windows fix or equate main-app proxy connectivity with helper-process connectivity.
On September 27, 2026, enabling FlClash TUN restored actual Chrome control on desktop 26.924.22138 (build 11645) with extension 1.26.901.11451_0.
Before: system proxy enabled, extension/native-host checks passed, side panel worked, but browser tools timed out. The app-bundled Node helper was observed making stalled direct connections. After the user enabled TUN: the supported CUA tool returned all 11 Chrome tabs, opened https://example.com/, read its heading/body/link, and closed the test tab successfully. No official runtime/plugin files or authentication/security checks were patched.
This is an environment-specific workaround where direct connectivity is unavailable and helper traffic needs the existing proxy. It requires TUN to remain operational, does not identify the exact failed authenticated prerequisite, and is not a universal fix for every nodeRepl.fetch error. No private logs or browser contents are attached.
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
JackHuang90 commentedon Sep 10, 2026
The same.
wxdChinese commentedon Sep 10, 2026
The same.
JJjyJJ7F3 commentedon Sep 10, 2026
The same.
qsztt commentedon Sep 10, 2026
the same
Mark-Josh commentedon Sep 10, 2026
The same.
pengqiangQiao commentedon Sep 10, 2026
the same
East-Leo commentedon Sep 10, 2026
The same: It detects Chrome configurations and extensions, but after about 21 seconds of attempting to read tabs, it still reports a "nodeRepl.fetch request failed" error, making it impossible to interact with the web pages.
douxiaolong commentedon Sep 11, 2026
所以有解决方案吗
Mark-Josh commentedon Sep 11, 2026
lfengwa2 commentedon Sep 11, 2026
the same
douxiaolong commentedon Sep 11, 2026
兄弟们,试一下这个,解决了我的问题#44364 (comment)
kubernetes-dev commentedon Sep 15, 2026
The same.
tyljx commentedon Sep 15, 2026
For anyone hitting this on Windows behind a local HTTP proxy / Clash / mihomo / v2rayN: one important thing to check is Node 24's environment-proxy opt-in.
Codex currently bundles Node 24.x for the browser/CUA runtime. Node's built-in
fetch()does not automatically useHTTP_PROXY/HTTPS_PROXYunless environment proxy support is explicitly enabled with:Then fully exit Codex/ChatGPT and make sure
ChatGPT.exe,node_repl.exe, andextension-host.exeare no longer running before restarting.setxonly affects newly started processes.A useful diagnostic pattern is:
nodeRepl.fetch request failed.HTTP_PROXY/HTTPS_PROXYare already present, butNODE_USE_ENV_PROXYis missing.In that case, enabling
NODE_USE_ENV_PROXY=1is worth testing before reinstalling Codex or changing WinHTTP settings.Also keep
NO_PROXY=localhost,127.0.0.1,::1so local browser/native-host RPC is not sent through the proxy.There is a more detailed Windows reproduction/workaround in #44364, including a verified launcher-level environment injection for cases where Codex's generated plugin runtime does not inherit the user's proxy environment.
a1212a11 commentedon Sep 15, 2026
Same issue here, still reproducible today (2026-09-15).
On Windows 10, Codex Desktop's browser-control inventory always fails with
nodeRepl.fetch request failed. It returnsapps: []andbrowsers: []even though Chrome is running and the official Chrome extension side panel reports connected. The issue persists after restarting Chrome, the extension host, Codex, and the CUA bridge. HTTP and Responses WebSocket diagnostics are healthy after enablingrespect_system_proxy = true; therefore this appears to be an internal CUA/node_repl bridge failure rather than a network or website issue. Multiplenode_repl.exeandcua-repl.mjschild processes have been observed under the Codex app-server. Please advise how to reset/reinstall the browser-control bridge cleanly or collect a supported diagnostic bundle.Environment
26.908.4834.00.154.0-alpha.6.2a708e72b10c27b59hehggadaopoacecdllhhajmbjkdcmajgcom.openai.codexextension@oai/cua-repl127.0.0.1:7897,respect_system_proxy = truea1212a11 commentedon Sep 15, 2026
Follow-up with a narrowed-down root cause on my setup (Windows 10 19045, Codex Desktop 26.908.4834.0, CUA runtime
a708e72b10c27b59, local Clash HTTP proxy on127.0.0.1:7897).Confirmed: enabling the proxy client's TUN mode makes browser control pass immediately (browser inventory, tab listing, navigation all work). Disabling TUN reproduces
nodeRepl.fetch request failed/Unable to load browser request-header policy. Same pattern as #44364.Why the
launch.mjs/cua-repl.mjsproxy patches from #44364 / #44801 do not help on this version:launch.mjs; the bridge is started from.mcp.jsonrunning@oai/cua-repl/bin/cua-repl.mjs.launch()spawnsnode_repl.exewithenv: { ...process.env, ... }(full inheritance, no allowlist filtering), so injectingHTTP_PROXY/HTTPS_PROXY/NODE_USE_ENV_PROXYbeforelaunch()does reachnode_repl.exe.NODE_REPL_UNTRUSTED_ENV_ALLOWLISTonly controls what untrusted REPL cells can see; it does not affect the host's network layer.node_repl.exeis a ~35 MB OpenAI-signed native executable, not a Node runtime (--versionprints no Node version; it separately spawnsnode.exev24.20.0 forkernel.js/trusted-worker.js). SoNODE_USE_ENV_PROXYhas no effect on it.https://ab.chatgpt.com/v1/...) is issued vianetworkOverrideFunc: (url, init) => e.fetch(url, init), ande.fetchisauthenticatedFetch, which serializes the request over IPC (type: "authenticated_fetch") to thenode_repl.exehost. The native host performs the actual HTTP request.HTTP_PROXY/HTTPS_PROXYin its environment and the Windows system proxy.respect_system_proxy = truefixes the main app's HTTP and Responses WebSocket, but does not reach this host.So on this version the only working configuration is a transparent proxy (TUN). Everything else (env vars,
launch.mjs/cua-repl.mjspatches,[mcp_servers.cua_repl.env]overrides) cannot influence theauthenticated_fetchhost.Request: could
node_repl.exe's authenticated-fetch path honorrespect_system_proxy(orHTTP_PROXY/HTTPS_PROXY), the same way the main app already does? That would resolve this whole family of issues (#44135, #44364, #44383, #44697, #44801, #45249, #45340, #45576, and the macOS variant #21713 / #23504) for users behind a local proxy without requiring TUN.mrg1130 commentedon Sep 15, 2026
Additional reproduction on 2026-09-16: the same Windows browser-control failure persists after the user reinstalled the browser plugin.
Environment:
Reproduction:
await cua.getState();throughmcp__cua_repl.js.{"apps":[],"browsers":[],"errors":["Browsers: Error: nodeRepl.fetch request failed"]}js_resetand retry: identical failure.Completed diagnostics and recovery attempts:
check-extension-installed.js --browser chrome --jsonpasses: installed=true, enabled=true, registered=true, no disable reasons.check-native-host-manifest.js --browser chrome --jsonpasses: correct=true, registryMatchesManifestPath=true, missingExpectedOrigins=[].open-chrome-window.js --browser chrome --jsonsuccessfully opened a window in the selected profile, but browser discovery still failed.An earlier native computer-use observation of Chrome separately stopped with: "could not determine the current browser URL on Windows with enough confidence to enforce policy." The current CUA discovery attempts return the fetch error above, without that safety-stop message. These are observed symptoms; a shared root cause has not been established.
Expected: enumerate browser tabs and permit authorized browser interaction. Actual: no browser inventory is returned, blocking browser-based work entirely. Please investigate the Windows desktop/control-runtime communication path and provide a supported recovery procedure.
This report includes selected diagnostic facts only; no credentials, cookies, account identifiers, private browsing URLs, local user paths, or raw session logs are attached.
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,应以实际启动链路为准。Hxx-Gi commentedon Sep 20, 2026
I am experiencing the same issue on Windows.
Codex detects two Chrome connections, but attempting to list tabs consistently fails with:
nodeRepl.fetch request failedAdditional diagnostics:
chatgpt.com:443codex.exe -> chatgpt.com:443wss://ws.chatgpt.comreturns101 Switching Protocols)I also submitted diagnostics from the Codex app.
Feedback ID:
01a0bc79-a514-7411-9e62-81c6b429375aThe Codex UI reports:
Detected two Chrome connections, but fetching tabs from both returns nodeRepl.fetch request failed.Could you confirm whether this is the same underlying Windows browser-control issue, and whether the launch.js / proxy environment workaround discussed here is currently the recommended workaround?
Hxx-Gi commentedon Sep 20, 2026
I am experiencing the same issue on Windows.
Codex detects two Chrome connections, but attempting to list tabs consistently fails with:
nodeRepl.fetch request failedAdditional diagnostics:
chatgpt.com:443codex.exe -> chatgpt.com:443wss://ws.chatgpt.comreturns101 Switching Protocols)I also submitted diagnostics from the Codex app.
Feedback ID:
01a0bc79-a514-7411-9e62-81c6b429375aThe Codex UI reports:
Detected two Chrome connections, but fetching tabs from both returns nodeRepl.fetch request failed.Could you confirm whether this is the same underlying Windows browser-control issue, and whether the launch.js / proxy environment workaround discussed here is currently the recommended workaround?
Hxx-Gi commentedon Sep 20, 2026
I am experiencing the same issue on Windows.
Codex detects two Chrome connections, but attempting to list tabs consistently fails with:
nodeRepl.fetch request failedAdditional diagnostics:
chatgpt.com:443codex.exe -> chatgpt.com:443wss://ws.chatgpt.comreturns101 Switching Protocols)I also submitted diagnostics from the Codex app.
Feedback ID:
01a0bc79-a514-7411-9e62-81c6b429375aThe Codex UI reports:
Detected two Chrome connections, but fetching tabs from both returns nodeRepl.fetch request failed.Could you confirm whether this is the same underlying Windows browser-control issue, and whether the launch.js / proxy environment workaround discussed here is currently the recommended workaround?
VidyFoo commentedon Sep 27, 2026
This adds measured macOS evidence for the TUN suggestion in this thread. We did not verify a Windows fix or equate main-app proxy connectivity with helper-process connectivity.
On September 27, 2026, enabling FlClash TUN restored actual Chrome control on desktop 26.924.22138 (build 11645) with extension 1.26.901.11451_0.
Before: system proxy enabled, extension/native-host checks passed, side panel worked, but browser tools timed out. The app-bundled Node helper was observed making stalled direct connections. After the user enabled TUN: the supported CUA tool returned all 11 Chrome tabs, opened
https://example.com/, read its heading/body/link, and closed the test tab successfully. No official runtime/plugin files or authentication/security checks were patched.Full diagnostic evidence and verification.
This is an environment-specific workaround where direct connectivity is unavailable and helper traffic needs the existing proxy. It requires TUN to remain operational, does not identify the exact failed authenticated prerequisite, and is not a universal fix for every
nodeRepl.fetcherror. No private logs or browser contents are attached.