Claude in Chrome (Edge, Windows): extension intermittently disconnects and screenshots time out on background tabs; native host stays alive
Summary
On Windows 11 with Microsoft Edge, the Claude in Chrome extension drops its connection to Claude Code / the Claude desktop app intermittently. The browser tools report "Claude in Chrome is not connected" and then recover on their own a few seconds later. Separately, screenshot calls fail with Script injection timed out after 5000ms when the target tab is in a background window.
The local native messaging host process stays alive across the drop, so the break appears to be on the extension side (service worker lifecycle / its connection to the relay), not in the native host.
Environment
- OS: Windows 11 Home (China edition), build 10.0.26300
- Browser: Microsoft Edge 154.0.4258.62
- Extension: Claude v1.0.99 (
fcoeoabgfenejglbffodgkkbkcdhcgfn), Manifest V3, installed from the Chrome Web Store - Client: Claude desktop app (Windows Store/MSIX package), Code tab, driving the extension through the
claude-in-chromeMCP tools - Native host:
chrome-native-host.exe, registered under bothHKCU\Software\Microsoft\Edge\NativeMessagingHostsandHKCU\Software\Google\Chrome\NativeMessagingHosts;allowed_originsincludes the extension ID above - Edge has about 13 other extensions installed (12 of them MV3). No enterprise policies. Sleeping tabs / efficiency mode were not explicitly configured (defaults).
Observed behavior
- Browser tools worked normally during a test session: navigate, screenshot,
read_page,find,get_page_text,javascript_tool, click/type/hover/key/scroll,form_input(select and checkbox), and console and network reads all returned correct results. - Calling
tabs_close_mcpon the test tab returned "Claude in Chrome is not connected". - A few seconds later
list_connected_browsersshowed the browser connected again, with a differentconnectedAt(about 13 minutes after the earlier value) and a different display name (Browser 1became the machine name). So the connection was torn down and re-established between the two calls. - The
chrome-native-host.exeprocess kept the same PID (started hours earlier) through the whole sequence, so the native host did not restart. - In an earlier session a
screenshotcall failed with:
Error capturing screenshot: Script injection timed out after 5000ms — the page is busy or mid-navigation ... (scale: 0.7).
- In the test session,
document.visibilityStateon the MCP tab was"hidden"(document.hidden === true) because the tab group lives in a window the user is not looking at. This may be related to the injection timeouts, since Edge throttles or freezes hidden tabs.
Expected behavior
The connection should survive service worker restarts, or reconnect fast enough that tool calls do not fail in between. Tool calls on tabs inside the MCP tab group should not time out just because that window is in the background.
Additional notes
resize_windowreports success butwindow.innerWidthdid not change (window was maximized). Probably separate, but noting it.- The
computerzoomaction returned a blank region after a scroll; probably user error, mentioned only for completeness.
Possibly related
- #87774 (service worker restarts drop the session-to-tab-group mapping, macOS)
- #96540 (extension disconnects mid-batch during an extended session)
- #96539 (screenshot/JS calls intermittently slow on some pages)
This report adds a Windows + Edge data point and shows that the native host survives the drop.
Ideas
- Keep the service worker alive with a periodic alarm or an open port while an MCP session is active, and reconnect automatically on wake-up.
- Make the tool layer retry once with a short backoff on
not connected, before surfacing the error. - Mention Edge "Sleeping tabs" and "Efficiency mode" in the troubleshooting docs, or exempt the MCP tab group from them.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗