Codex Chrome Browser Control Failure
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
What version of the Codex App are you using (From “About Codex” dialog)?
Version 26.908.40834
What subscription do you have?
Pro
What platform is your computer?
Darwin 25.5.0 arm64 arm
What issue are you seeing?
Codex cannot control the system-installed Chrome browser because the browser-provider discovery layer fails.
Chrome is running normally, and the node_repl service starts successfully. However, browser discovery requests hang and time out after 30 seconds.
What steps can reproduce the bug?
Codex Chrome Browser Control Failure
Summary
Codex cannot control the system-installed Chrome browser because the browser-provider discovery layer fails.
Chrome is running normally, and the node_repl service starts successfully. However, browser discovery requests hang and time out after 30 seconds.
Evidence
The local logs show that node_repl starts successfully:
server_name=node_repl
Service initialized as client
Browser-related calls then time out:
node_repl js execution timed out
timeout_ms=30000
The failing calls include:
cua.getState()
cua.listTabs({browser: ""})
cua.createBrowserTab("", "")
The empty browser identifier is significant:
browser: ""
This indicates that Codex did not discover or register the Chrome browser backend.
Failure Chain
node_repl starts successfully
↓
cua runtime starts
↓
Chrome browser-provider discovery hangs
↓
30-second timeout
↓
browsers: []
Environment
Operating system: macOS
Architecture: Apple Silicon / aarch64
Codex Desktop: 26.908.40834
Chrome: System-installed Google Chrome
Chrome profile: Default
What Is Not Causing the Problem
The failure does not appear to be caused by:
- Chrome not running;
- The Chrome Default profile;
- The localhost editor;
- A missing
node_replexecutable; - The
.sb3project files.
Likely Root Cause
The likely cause is a Codex Desktop browser-provider registration or discovery regression.
The failure occurs after node_repl has started, when Codex attempts to discover or communicate with the Chrome browser provider.
This is consistent with the public issue:
Local Log Location
The relevant log database is:
/Users/XXXXX/.codex/logs_2.sqlite
The relevant log query is:
sqlite3 -noheader ~/.codex/logs_2.sqlite \\
"select datetime(ts,'unixepoch','localtime') || ' | ' || level || ' | ' ||
substr(feedback_log_body,1,1600)
from logs
where feedback_log_body like '%node_repl%'
order by ts desc limit 12;"
Expected Behavior
Codex should:
- Discover the connected Chrome browser backend.
- Return the available Chrome tabs.
- Allow browser operations such as navigation and DOM inspection.
Actual Behavior
Codex:
- Starts
node_repl. - Fails to discover a usable Chrome browser backend.
- Calls the browser API with an empty browser identifier.
- Times out after 30 seconds.
- Returns an empty browser list:
browsers: []
Conclusion
The Chrome process and extension appear to be available, but Codex Desktop fails to register or discover the Chrome browser backend. The resulting nodeRepl.fetch request failed error is a Codex browser-provider/runtime integration issue rather than a Chrome or website issue.
What is the expected behavior?
Codex Chrome Browser Control Failure
Summary
Codex cannot control the system-installed Chrome browser because the browser-provider discovery layer fails.
Chrome is running normally, and the node_repl service starts successfully. However, browser discovery requests hang and time out after 30 seconds.
Evidence
The local logs show that node_repl starts successfully:
server_name=node_repl
Service initialized as client
Browser-related calls then time out:
node_repl js execution timed out
timeout_ms=30000
The failing calls include:
cua.getState()
cua.listTabs({browser: ""})
cua.createBrowserTab("", "")
The empty browser identifier is significant:
browser: ""
This indicates that Codex did not discover or register the Chrome browser backend.
Failure Chain
node_repl starts successfully
↓
cua runtime starts
↓
Chrome browser-provider discovery hangs
↓
30-second timeout
↓
browsers: []
Environment
Operating system: macOS
Architecture: Apple Silicon / aarch64
Codex Desktop: 26.908.40834
Chrome: System-installed Google Chrome
Chrome profile: Default
What Is Not Causing the Problem
The failure does not appear to be caused by:
- Chrome not running;
- The Chrome Default profile;
- The localhost editor;
- A missing
node_replexecutable; - The
.sb3project files.
Likely Root Cause
The likely cause is a Codex Desktop browser-provider registration or discovery regression.
The failure occurs after node_repl has started, when Codex attempts to discover or communicate with the Chrome browser provider.
This is consistent with the public issue:
Local Log Location
The relevant log database is:
/Users/XXXXX/.codex/logs_2.sqlite
The relevant log query is:
sqlite3 -noheader ~/.codex/logs_2.sqlite \\
"select datetime(ts,'unixepoch','localtime') || ' | ' || level || ' | ' ||
substr(feedback_log_body,1,1600)
from logs
where feedback_log_body like '%node_repl%'
order by ts desc limit 12;"
Expected Behavior
Codex should:
- Discover the connected Chrome browser backend.
- Return the available Chrome tabs.
- Allow browser operations such as navigation and DOM inspection.
Actual Behavior
Codex:
- Starts
node_repl. - Fails to discover a usable Chrome browser backend.
- Calls the browser API with an empty browser identifier.
- Times out after 30 seconds.
- Returns an empty browser list:
browsers: []
Conclusion
The Chrome process and extension appear to be available, but Codex Desktop fails to register or discover the Chrome browser backend. The resulting nodeRepl.fetch request failed error is a Codex browser-provider/runtime integration issue rather than a Chrome or website issue.
Additional information
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the 30-second timeout and querying ~/.codex/logs_2.sqlite for node_repl entries. Trace the browser-provider discovery path around cua.getState(), cua.listTabs({browser: ""}), and cua.createBrowserTab("", ""), and read openai/codex#44383 for related context. Done means Chrome is discovered, tabs are returned, and browser operations no longer time out.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, rust, sqlite
- Domain
- desktop-dev, devtools, web-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100