Bug: browser MCP transports drop on macOS and require app restart (Chrome DevTools + Playwright)
What version of Codex is running?
Desktop app current as of February 28, 2026.
What subscription do you have?
Plus Team
Which model were you using?
gpt-5.3-codex
What platform is your computer?
macOS
What issue are you seeing?
This is a reliability bug (not a feature request): browser MCPs can fail mid-session with transport errors and become unusable until Codex is restarted.
Observed failures include transport-level errors such as:
Transport send errorBroken pipe (os error 32)Transport closed
Affected MCP servers:
chrome-devtoolsplaywright
What steps can reproduce the bug?
- Start a Codex session with browser MCPs enabled.
- Run a browser MCP call (e.g.,
mcp__chrome-devtools__new_pageormcp__playwright__browser_tabs). - During or between turns, the MCP child process/transport drops.
- Next browser MCP call fails with transport errors and browser MCP becomes unreliable for the session.
What is the expected behavior?
Codex should automatically recover from browser MCP transport drops and continue serving MCP tool calls in the same session, without requiring a full Codex app restart.
Additional information
A fix and E2E validation were prepared in closed PR #13100:
That PR includes:
- transport-recovery matching for
Transport send/receive error,Broken pipe, andTransport closed - unit coverage for matcher behavior
- end-to-end macOS validation for both
chrome-devtoolsandplaywrightshowing recovery in-session after forced transport/process termination
This issue is being opened per maintainer request to track the bug through Issues.
Duplicate triage (reviewed)
Reviewed potential duplicates surfaced by automation:
#11489(MCP client does not auto-reconnect after disconnect): related / likely umbrella, but broader and framed as generic MCP reconnect behavior across transports.#12869(CLI degrades after stale streamable-http MCP session): related but distinct. That issue is CLI + streamable HTTP stale-session (401 Unauthorized: Session not found). This issue is desktop app browser MCP transport/process drop behavior (Transport closed,Broken pipe) requiring app restart.
Keeping this issue open for desktop-app/browser-MCP tracking. The underlying recovery change may improve multiple related issues, including #11489 and #12869, but the reproduction and user impact here are app-specific and should remain explicit.
7 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Scope clarification for reviewers:
Recommendation: keep #13138 open for app-specific tracking. If a reconnect fix lands from #13100 (or equivalent), then reassess whether #11489 and/or #12869 are fully resolved and close each independently based on validation.
Quick follow-up: this is still actively impacting desktop app browser MCP reliability on macOS (chrome-devtools + playwright). Could a maintainer please triage and route this to the desktop-app owner? Happy to provide additional logs or rerun validation if helpful.
Same issue.
Same issue. Playwright MCP + Codex do not perform well together due to this issue.
I hit the same problem today on macOS, and I was able to narrow it down a bit further.
What I confirmed locally:
--userDataDirfor both project browser entries.The browser is already running for /Users/timvucina/.codex/.tmp/chrome-yugiai. Use --isolated to run multiple browser instances.--isolatedinstead of fixed--userDataDir.isolated_present: trueuser_data_dir_present: falseSo the shared-profile problem is fixed in my setup.
However, the remaining transport bug still reproduces in the desktop app:
chrome-devtools-yugiai/list_pagesimmediately fails with:Transport closedchrome-devtools-mcpprocessesParent death detected (stdin end). Sending shutdown event...That strongly suggests there are two separate layers here:
--userDataDir/ non-isolated launches)In other words: fixing the Chrome MCP launch config to
--isolatedremoved one failure mode, but the desktop app still has a transport-lifecycle bug that makes the browser MCP unusable in-session.Current working config:
Observed log sequence after restart:
Starting Chrome DevTools MCP Server v0.21.0Chrome DevTools MCP Server connectedisolated_present: trueParent death detected (stdin end). Sending shutdown event...Impact:
list_pagescan be used reliablyThis feels like good additional evidence that the issue is not just stale Chrome state; the app-side MCP transport/session handling is still failing after restart.
Completely breaks BrowserMCP on codex desktop, but works fine in codex cli...