[BUG] Claude in Chrome: persistent 403 WebSocket handshake failure with user:null in feature flags response (Windows 11, Team plan)

Open 💬 2 comments Opened Jun 10, 2026 by Utron-NinaM

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Claude in Chrome extension fails to connect to the bridge with a persistent 403 WebSocket error.

The extension's offscreen.html repeatedly attempts to connect to
wss://bridge.claudeusercontent.com/chrome/{session-id} but receives
"Error during WebSocket handshake: Unexpected response code: 403".

The session ID in the bridge URL never changes across Claude Desktop restarts,
extension reloads, or re-authentication. The /claude_in_chrome feature flags
endpoint returns "user": null despite the user being authenticated (profile API
returns 200). The bridge connection never succeeds, so list_connected_browsers
always returns "not connected".

What Should Happen?

The Chrome extension should successfully establish a WebSocket connection
to the bridge, allowing Claude Desktop to detect the browser via
list_connected_browsers and enable browser automation tools.

Error Messages/Logs

[offscreen.html console]
WebSocket connection to 'wss://bridge.claudeusercontent.com/chrome/fac863cb-368f-46cc-824c-a92cf5c404ae' 
failed: Error during WebSocket handshake: Unexpected response code: 403

[service worker network tab]
GET https://bridge.claudeusercontent.com/ → 426 (Upgrade Required) — confirms server IS reachable
WebSocket fac863cb-368f-46cc-824c-a92cf5c404ae → Finished (failed handshake, 403)

[/claude_in_chrome API response — key excerpt]
{ "features": { "chrome_ext_bridge_enabled": { "value": true, "on": true, "source": "defaultValue" } }, "user": null }

Steps to Reproduce

  1. Account has two organizations on the same email address:

one Team plan org (Utron) and one personal Free plan org

  1. Install Claude Desktop (Windows) and sign in with the Team plan org
  2. Install Claude in Chrome (Beta) extension v1.0.75
  3. In Claude Desktop Settings → Connectors, enable Claude in Chrome
  4. Click the extension icon → sign in → select the Team plan org
  5. Open chrome://extensions → Developer mode → inspect offscreen.html
  6. Observe: persistent 403 on WebSocket handshake to bridge.claudeusercontent.com
  7. Note: session ID in the bridge URL does not change across:
  • Claude Desktop restarts
  • Extension re-authentication
  • Clearing extension site data and IndexedDB

Claude Model

Sonnet (default)

Is this a regression?

No, this never worked

Last Working Version

_No response_

Claude Code Version

Claude Code Version: 2.1.160 (Claude Code)

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

PowerShell

Additional Information

This issue is specific to Claude in Chrome (the browser extension), not the CLI itself.

  • Account has two orgs on the same email: Team plan (Utron) + personal Free plan
  • Chrome is managed by organization
  • Native messaging host is correctly registered in Windows registry
  • Extension v1.0.75 is installed, enabled, signed in with Utron org
  • Claude in Chrome connector is enabled in Desktop settings
  • /claude_in_chrome feature flags API returns "user": null
  • Session ID in bridge URL is identical across restarts and re-auths
  • Profile API returns 200 — user IS authenticated
  • Screenshots attached: offscreen.html 403 error, network tab showing failed WebSocket

<img width="988" height="579" alt="Image" src="https://github.com/user-attachments/assets/8d577c86-5df5-4417-89b2-d216dcc8fae4" />

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗