Codex IAB browser-client trust/nativePipe failure; Chromium launch fallback fails on macOS 26
What version of Codex CLI is running?
140.
What subscription do you have?
Google Chrome, Google Chrome for Testing
Which model were you using?
5.5
What platform is your computer?
_No response_
What terminal emulator and version are you using (if applicable)?
_No response_
Codex doctor report
What issue are you seeing?
# Codex IAB browser-client trust/nativePipe failure; Chromium launch fallback fails on macOS 26
## Summary
I am unable to use Codex browser:control-in-app-browser for visual/browser verification. The in-app browser bootstrap consistently fails with:
Error: privileged native pipe bridge is not available; browser-client is not trusted
This happens even after installing the Codex standalone package, starting the app-server daemon, and opening fresh Codex CLI / remote CLI sessions.
Separately, when trying to work around IAB by launching Chromium/Chrome/Chrome for Testing through Playwright or direct headless CLI, Chromium-family browsers fail under the Codex/iTerm process tree on
macOS 26 with HIServices / AppKit / _RegisterApplication / SIGABRT or Mach bootstrap permission errors.
Firefox via Playwright from an external Terminal does work, so the target web app itself is not the root cause.
## Environment
- macOS: 26.5.1 (25F80)
- Hardware: Apple M1 MacBookAir10,1
- SIP: enabled
- Codex CLI:
codex-cli 0.140.0 - Codex path:
/Users/idong-gyu/.local/bin/codex - Codex app:
/Applications/Codex 2.app - Browser plugin path:
/Users/idong-gyu/.codex/plugins/cache/openai-bundled/browser/26.611.61753 - Browser client:
/Users/idong-gyu/.codex/plugins/cache/openai-bundled/browser/26.611.61753/scripts/browser-client.mjs - Codex bundled Playwright:
1.57.0 - Homebrew Playwright:
1.59.1 - Node:
v22.22.1
## Problem A: IAB nativePipe / trust injection failure
Fresh session check result:
```json
{
"env_type": "object",
"NODE_REPL_TRUSTED_BROWSER_CLIENT_SHA256S": false,
"BROWSER_USE_AVAILABLE_BACKENDS": false,
"nativePipe_type": "undefined",
"nativePipe_createConnection_type": "undefined"
}
codex mcp list shows the node_repl MCP has env configured, including:
- NODE_REPL_NATIVE_PIPE_CONNECT_TIMEOUT_MS
- NODE_REPL_NODE_MODULE_DIRS
- NODE_REPL_NODE_PATH
- NODE_REPL_TRUSTED_BROWSER_CLIENT_SHA256S
- NODE_REPL_TRUSTED_CODE_PATHS
But inside the live Node REPL runtime:
- nodeRepl.env is empty / missing expected values
- nodeRepl.nativePipe is undefined
- nodeRepl.nativePipe.createConnection is unavailable
Bootstrap failure:
Error: privileged native pipe bridge is not available; browser-client is not trusted
at mwe (/Users/idong-gyu/.codex/plugins/cache/openai-bundled/browser/26.611.61753/scripts/browser-client.mjs:3214:18541)
This reproduces in:
- normal fresh codex CLI session
- codex --remote unix://
- after standalone install
- after app-server daemon start
- after browser plugin reinstall attempts
App-server daemon was confirmed running at one point:
socket: ~/.codex/app-server-control/app-server-control.sock
Expected behavior:
nodeRepl.nativePipe.createConnection should be available, or Codex should document that browser:control-in-app-browser is not supported in this CLI/runtime mode.
## Problem B: Chromium-family browser launch failures under Codex/iTerm
Fallback attempts were made because IAB failed.
### Chrome bundle corruption was found and fixed
Before reinstall, Chrome codesign failed:
resource fork, Finder information, or similar detritus not allowed
file with invalid attached data: Disallowed xattr com.apple.FinderInfo
Chrome was removed and reinstalled. After reinstall:
/Applications/Google Chrome.app: valid on disk
/Applications/Google Chrome.app: satisfies its Designated Requirement
kMDItemCFBundleIdentifier = "com.google.Chrome"
So the Chrome bundle/signing issue appears fixed.
### Playwright revision mismatch was also fixed
Codex bundled Playwright 1.57.0 required:
chromium_headless_shell-1200
Cache previously had a mismatched revision. After install, these exist:
~/Library/Caches/ms-playwright/chromium-1200
~/Library/Caches/ms-playwright/chromium_headless_shell-1200
~/Library/Caches/ms-playwright/firefox-1497
~/Library/Caches/ms-playwright/webkit-2227
### Chromium still fails under Codex/iTerm
Even after fixing the revision mismatch, Chromium-family launch still fails.
Observed failures include:
FATAL:base/apple/mach_port_rendezvous_mac.cc:156
bootstrap_check_in ... Permission denied (1100)
And macOS crash reports for Google Chrome / Google Chrome for Testing show:
Exception Type: EXC_CRASH (SIGABRT)
Thread 0:
HIServices ___RegisterApplication_block_invoke
HIServices _RegisterApplication
AppKit +[NSApplication sharedApplication]
ChromeMain
Chrome for Testing example:
Process: Google Chrome for Testing
Version: 143.0.7499.4
Parent Process: codex
Responsible Process: iTerm2
macOS: 26.5.1 (25F80)
Direct system Chrome headless after reinstall still does not reliably complete. It logs GoogleUpdater / Crashpad messages and appears to hang instead of printing the expected DOM.
## Working workaround
Firefox via Playwright from a normal external Terminal works.
Simple canvas probe:
{
"ok": true,
"result": {
"title": "firefox-ok",
"bodyText": "Firefox OK",
"canvas": {
"width": 64,
"height": 32,
"sampledNonBlankPixels": 2048
}
},
"consoleMessages": [],
"pageErrors": []
}
Actual target app verification also works externally:
{
"ok": true,
"result": {
"title": "Claw Physics Lab Replay",
"meta": "complete=true success=134 runs=360",
"frame": "32 / 647",
"canvas": {
"id": "stage",
"width": 900,
"height": 1120,
"sampledNonBlankPixels": 1008000
}
},
"consoleMessages": [],
"pageErrors": [],
"screenshotPath": "/private/tmp/claw-firefox-replay.png"
}
This suggests the web app and canvas rendering are valid; the remaining blockers are Codex IAB/nativePipe and Chromium launch behavior under this runtime.
## Questions for maintainers
- Is browser:control-in-app-browser expected to work in Codex CLI / codex --remote unix:// sessions?
- Which component is responsible for injecting nodeRepl.nativePipe and NODE_REPL_TRUSTED_BROWSER_CLIENT_SHA256S into the live Node REPL runtime?
- Is it expected that codex mcp list shows the env configured, but nodeRepl.env is empty and nodeRepl.nativePipe is undefined?
- Is the Chromium Mach bootstrap / HIServices crash on macOS 26 a known Codex sandbox/process-launch issue?
- What is the officially supported browser verification path for local canvas/web testing when IAB is unavailable?
## Attachments I can provide
- /feedback session ID
- codex doctor --json
- codex mcp list
- Codex app logs from ~/Library/Logs/com.openai.codex/...
- Relevant session transcript from ~/.codex/sessions
- macOS crash reports for Google Chrome and Google Chrome for Testing
What steps can reproduce the bug?
# Codex IAB browser-client trust/nativePipe failure; Chromium launch fallback fails on macOS 26
## Summary
I am unable to use Codex browser:control-in-app-browser for visual/browser verification. The in-app browser bootstrap consistently fails with:
Error: privileged native pipe bridge is not available; browser-client is not trusted
This happens even after installing the Codex standalone package, starting the app-server daemon, and opening fresh Codex CLI / remote CLI sessions.
Separately, when trying to work around IAB by launching Chromium/Chrome/Chrome for Testing through Playwright or direct headless CLI, Chromium-family browsers fail under the Codex/iTerm process tree on
macOS 26 with HIServices / AppKit / _RegisterApplication / SIGABRT or Mach bootstrap permission errors.
Firefox via Playwright from an external Terminal does work, so the target web app itself is not the root cause.
## Environment
- macOS: 26.5.1 (25F80)
- Hardware: Apple M1 MacBookAir10,1
- SIP: enabled
- Codex CLI:
codex-cli 0.140.0 - Codex path:
/Users/idong-gyu/.local/bin/codex - Codex app:
/Applications/Codex 2.app - Browser plugin path:
/Users/idong-gyu/.codex/plugins/cache/openai-bundled/browser/26.611.61753 - Browser client:
/Users/idong-gyu/.codex/plugins/cache/openai-bundled/browser/26.611.61753/scripts/browser-client.mjs - Codex bundled Playwright:
1.57.0 - Homebrew Playwright:
1.59.1 - Node:
v22.22.1
## Problem A: IAB nativePipe / trust injection failure
Fresh session check result:
```json
{
"env_type": "object",
"NODE_REPL_TRUSTED_BROWSER_CLIENT_SHA256S": false,
"BROWSER_USE_AVAILABLE_BACKENDS": false,
"nativePipe_type": "undefined",
"nativePipe_createConnection_type": "undefined"
}
codex mcp list shows the node_repl MCP has env configured, including:
- NODE_REPL_NATIVE_PIPE_CONNECT_TIMEOUT_MS
- NODE_REPL_NODE_MODULE_DIRS
- NODE_REPL_NODE_PATH
- NODE_REPL_TRUSTED_BROWSER_CLIENT_SHA256S
- NODE_REPL_TRUSTED_CODE_PATHS
But inside the live Node REPL runtime:
- nodeRepl.env is empty / missing expected values
- nodeRepl.nativePipe is undefined
- nodeRepl.nativePipe.createConnection is unavailable
Bootstrap failure:
Error: privileged native pipe bridge is not available; browser-client is not trusted
at mwe (/Users/idong-gyu/.codex/plugins/cache/openai-bundled/browser/26.611.61753/scripts/browser-client.mjs:3214:18541)
This reproduces in:
- normal fresh codex CLI session
- codex --remote unix://
- after standalone install
- after app-server daemon start
- after browser plugin reinstall attempts
App-server daemon was confirmed running at one point:
socket: ~/.codex/app-server-control/app-server-control.sock
Expected behavior:
nodeRepl.nativePipe.createConnection should be available, or Codex should document that browser:control-in-app-browser is not supported in this CLI/runtime mode.
## Problem B: Chromium-family browser launch failures under Codex/iTerm
Fallback attempts were made because IAB failed.
### Chrome bundle corruption was found and fixed
Before reinstall, Chrome codesign failed:
resource fork, Finder information, or similar detritus not allowed
file with invalid attached data: Disallowed xattr com.apple.FinderInfo
Chrome was removed and reinstalled. After reinstall:
/Applications/Google Chrome.app: valid on disk
/Applications/Google Chrome.app: satisfies its Designated Requirement
kMDItemCFBundleIdentifier = "com.google.Chrome"
So the Chrome bundle/signing issue appears fixed.
### Playwright revision mismatch was also fixed
Codex bundled Playwright 1.57.0 required:
chromium_headless_shell-1200
Cache previously had a mismatched revision. After install, these exist:
~/Library/Caches/ms-playwright/chromium-1200
~/Library/Caches/ms-playwright/chromium_headless_shell-1200
~/Library/Caches/ms-playwright/firefox-1497
~/Library/Caches/ms-playwright/webkit-2227
### Chromium still fails under Codex/iTerm
Even after fixing the revision mismatch, Chromium-family launch still fails.
Observed failures include:
FATAL:base/apple/mach_port_rendezvous_mac.cc:156
bootstrap_check_in ... Permission denied (1100)
And macOS crash reports for Google Chrome / Google Chrome for Testing show:
Exception Type: EXC_CRASH (SIGABRT)
Thread 0:
HIServices ___RegisterApplication_block_invoke
HIServices _RegisterApplication
AppKit +[NSApplication sharedApplication]
ChromeMain
Chrome for Testing example:
Process: Google Chrome for Testing
Version: 143.0.7499.4
Parent Process: codex
Responsible Process: iTerm2
macOS: 26.5.1 (25F80)
Direct system Chrome headless after reinstall still does not reliably complete. It logs GoogleUpdater / Crashpad messages and appears to hang instead of printing the expected DOM.
## Working workaround
Firefox via Playwright from a normal external Terminal works.
Simple canvas probe:
{
"ok": true,
"result": {
"title": "firefox-ok",
"bodyText": "Firefox OK",
"canvas": {
"width": 64,
"height": 32,
"sampledNonBlankPixels": 2048
}
},
"consoleMessages": [],
"pageErrors": []
}
Actual target app verification also works externally:
{
"ok": true,
"result": {
"title": "Claw Physics Lab Replay",
"meta": "complete=true success=134 runs=360",
"frame": "32 / 647",
"canvas": {
"id": "stage",
"width": 900,
"height": 1120,
"sampledNonBlankPixels": 1008000
}
},
"consoleMessages": [],
"pageErrors": [],
"screenshotPath": "/private/tmp/claw-firefox-replay.png"
}
This suggests the web app and canvas rendering are valid; the remaining blockers are Codex IAB/nativePipe and Chromium launch behavior under this runtime.
## Questions for maintainers
- Is browser:control-in-app-browser expected to work in Codex CLI / codex --remote unix:// sessions?
- Which component is responsible for injecting nodeRepl.nativePipe and NODE_REPL_TRUSTED_BROWSER_CLIENT_SHA256S into the live Node REPL runtime?
- Is it expected that codex mcp list shows the env configured, but nodeRepl.env is empty and nodeRepl.nativePipe is undefined?
- Is the Chromium Mach bootstrap / HIServices crash on macOS 26 a known Codex sandbox/process-launch issue?
- What is the officially supported browser verification path for local canvas/web testing when IAB is unavailable?
## Attachments I can provide
- /feedback session ID
- codex doctor --json
- codex mcp list
- Codex app logs from ~/Library/Logs/com.openai.codex/...
- Relevant session transcript from ~/.codex/sessions
- macOS crash reports for Google Chrome and Google Chrome for Testing
What is the expected behavior?
_No response_
Additional information
_No response_
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗