Chrome extension never reaches the pairing service on Windows 11 — list_connected_browsers returns [] with a fully verified install (Chrome 151)

Status Open
Reported on v2.1.233
Maintainer reply None cached
Activity 0 comments · opened Aug 17, 2026

<html>
<body>
<!--StartFragment--><p class="font-claude-response-body break-words whitespace-normal" dir="ltr" data-sourcepos="9:1-9:244;187-430">I have the Claude in Chrome extension installed and enabled, with full host permissions, and the browser profile is signed into claude.ai under the same account Claude Code is authenticated as. Claude Code still doesn't see the browser at all:</p>

<ul dir="ltr" class="[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3 print:block print:space-y-1" data-sourcepos="11:1-13:64;432-590">
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="11:1-11:35;432-466"><code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">list_connected_browsers</code> → <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">[]</code></li>
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="12:1-12:60;467-526"><code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">tabs_context_mcp</code> → "Browser extension is not connected"</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="13:1-13:64;527-590"><code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">switch_browser</code> → "No other browsers available to switch to"</li>
</ul>

<p class="font-claude-response-body break-words whitespace-normal" dir="ltr" data-sourcepos="15:1-15:412;592-1003">That last one is what convinced me this isn't a stale-connection problem. As I understand it, <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">switch_browser</code> broadcasts a pairing request to every extension instance on the account, so "no browsers available" means zero instances are reachable by the pairing service. This doesn't look like an extension that connected and then went bad — it looks like one whose registration never arrives in the first place.</p>

<h3 dir="ltr" class="mt-2 -mb-1 text-base font-bold" data-sourcepos="17:1-17:16;1005-1020">Environment</h3>

<div dir="ltr" class="overflow-x-auto w-full pl-[var(--msg-block-inset,0.5rem)] pr-2 mb-6 print:overflow-x-visible" data-sourcepos="19:1-24:26;1022-1199">
  |  
-- | --
OS | Windows 11 Home 10.0.26200.0
Chrome | 151.0.7922.138
Claude extension | 1.0.85 (ID fcoeoabgfenejglbffodgkkbkcdhcgfn)
Claude Code | 2.1.233

</div>

<h3 dir="ltr" class="mt-2 -mb-1 text-base font-bold" data-sourcepos="26:1-26:23;1201-1223">Steps to reproduce</h3>

<ol dir="ltr" class="[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3 print:block print:space-y-1" data-sourcepos="28:1-31:53;1225-1503">
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="28:1-28:65;1225-1289">Install the Claude in Chrome extension into a Chrome profile.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="29:1-29:81;1290-1370">Sign that profile's claude.ai session into the same account Claude Code uses.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="30:1-30:80;1371-1450">Fully quit Chrome (confirm no <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">chrome.exe</code> is left running), then reopen it.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="31:1-31:53;1451-1503">From Claude Code, call <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">list_connected_browsers</code>.</li>
</ol>

<h3 dir="ltr" class="mt-2 -mb-1 text-base font-bold" data-sourcepos="33:1-33:13;1505-1517">Expected</h3>

<p class="font-claude-response-body break-words whitespace-normal" dir="ltr" data-sourcepos="35:1-35:69;1519-1587">The browser shows up in the list and can be selected for automation.</p>

<h3 dir="ltr" class="mt-2 -mb-1 text-base font-bold" data-sourcepos="37:1-37:11;1589-1599">Actual</h3>

<p class="font-claude-response-body break-words whitespace-normal" dir="ltr" data-sourcepos="39:1-39:237;1601-1837"><code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">list_connected_browsers</code> returns <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">[]</code>. I've reproduced this about ten times, including immediately after a confirmed cold restart of Chrome, and again after leaving Chrome running for several minutes in case registration was just slow.</p>

<h3 dir="ltr" class="mt-2 -mb-1 text-base font-bold" data-sourcepos="41:1-41:27;1839-1865">What I already checked</h3>

<p class="font-claude-response-body break-words whitespace-normal" dir="ltr" data-sourcepos="43:1-43:73;1867-1939">I verified each of these directly on the machine instead of assuming it:</p>

<ul dir="ltr" class="[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3 print:block print:space-y-1" data-sourcepos="45:1-49:130;1941-2745">
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="45:1-45:112;1941-2052"><strong>Extension is on disk</strong> — <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">User Data\Profile 2\Extensions\fcoeoabgfenejglbffodgkkbkcdhcgfn</code>, version 1.0.85.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="46:1-46:206;2053-2258"><strong>Registered and enabled</strong> — it's in that profile's <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">Secure Preferences</code> (not <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">Preferences</code>, which I gather is expected for Web Store extensions); <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">disable_reasons</code> is empty and no disabled state is set.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="47:1-47:162;2259-2420"><strong>Permissions granted</strong> — <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">granted_permissions.explicit_host</code> = <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">&lt;all_urls&gt;</code>; <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">scriptable_host</code> = <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">&lt;all_urls&gt;</code>, <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">https://.claude.ai/</code>, <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">https://claude.ai/*</code>.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="48:1-48:195;2421-2615"><strong>Cold restart really happened</strong> — I checked Chrome's process uptime with <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">Get-Process</code> and watched it reset from ~9.7 hours to zero, which rules out "the extension only registers at startup."</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="49:1-49:130;2616-2745"><strong>Accounts match</strong> — the claude.ai session in the profile hosting the extension is the same account Claude Code is logged into.</li>
</ul>

<h3 dir="ltr" class="mt-2 -mb-1 text-base font-bold" data-sourcepos="51:1-51:19;2747-2765">Possible leads</h3>

<ul dir="ltr" class="[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3 print:block print:space-y-1" data-sourcepos="53:1-55:144;2767-3378">
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="53:1-53:184;2767-2950">Chrome 151 is very new. If the extension's connection path leans on any API whose behavior changed there, that would match what I'm seeing: a registration that silently never lands.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="54:1-54:284;2951-3234">I have three Chrome profiles on this machine and the extension is only in one of them. That profile's <em>Google</em> account is different from its claude.ai account. I'd expect only the claude.ai login to matter, but I'm mentioning it in case profile identity plays into pairing somehow.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="55:1-55:144;3235-3378">Nothing surfaces beyond the generic "not connected" string, so I have no way to tell "never registered" apart from "registered and rejected."</li>
</ul>

<h3 dir="ltr" class="mt-2 -mb-1 text-base font-bold" data-sourcepos="57:1-57:11;3380-3390">Impact</h3>

<p class="font-claude-response-body break-words whitespace-normal" dir="ltr" data-sourcepos="59:1-59:322;3392-3713">The failure is silent, and the error message points at preconditions that are all already satisfied on my machine. That sent me through repeated reinstall / restart / re-login cycles with no feedback about whether anything I did changed anything. A reason code on the failure would make this much easier to self-diagnose.</p><!--EndFragment-->
</body>
</html>

View original on GitHub ↗