Claude Desktop cannot connect to Cloud WebSocket bridge - Invalid token or user mismatch

Resolved 💬 3 comments Opened Feb 16, 2026 by klylytn-eng Closed Feb 19, 2026

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 cannot connect to Claude Code/Desktop. The cloud WebSocket bridge (wss://bridge.claudeusercontent.com) consistently rejects connections with "Invalid token or user mismatch" (WebSocket close code 1008).

Every connection attempt fails immediately, and Claude Desktop retries with exponential backoff (observed up to attempt 51+) but never falls back to the local socket, leaving the browser extension non-functional despite all infrastructure being correctly configured.

What Should Happen?

Claude Desktop should either:

  1. Successfully connect to the cloud WebSocket bridge using the OAuth token from apple_subscription billing accounts, OR
  2. Fall back to the local Unix socket connection after N failed authentication attempts, OR
  3. Provide a client-side override configuration to disable the cloud bridge

Error Messages/Logs

[Chrome MCP] Bridge feature flag: chrome_ext_bridge_enabled_desktop=true, IS_NEST_BUILD=false
[Claude in Chrome] Connecting to bridge: wss://bridge.claudeusercontent.com/chrome/<uuid>
[Claude in Chrome] WebSocket connected, sending connect message
[Claude in Chrome] Bridge error: Invalid token or user mismatch
[Claude in Chrome] Bridge connection closed (code: 1008, duration: 0ms)
[Claude in Chrome] Bridge reconnecting in 30000ms (attempt 20)

Chrome native host logs show:
Chrome native host starting (version 0.1.0)
Socket created successfully at: /tmp/claude-mcp-browser-bridge-<user>/<pid>.sock
Socket server listening for connections
# No client ever connects
Chrome disconnected (EOF received)

Steps to Reproduce

  1. Have Claude Desktop v1.1.3189 installed on macOS
  2. Have Chrome extension v1.0.47+ installed (ID: fcoeoabgfenejglbffodgkkbkcdhcgfn)
  3. Sign in with an Apple Subscription billing account
  4. Open Claude in Chrome browser extension
  5. Try to use any feature that requires connection to Claude Code/Desktop
  6. Observe the "Browser extension is not connected" error
  7. Check ~/Library/Logs/Claude/main.log and see repeated "Bridge error: Invalid token or user mismatch" messages with exponential backoff retries

Claude Model

Opus

Is this a regression?

I don't know

Last Working Version

n/a

Claude Code Version

2.1.41 (Claude Code)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

Root Cause Analysis

  1. chrome_ext_bridge_enabled_desktop is true (server-side GrowthBook flag, not locally overridable), forcing Claude Desktop to use the cloud WebSocket bridge instead of the local Unix socket.
  1. Claude Desktop connects to wss://bridge.claudeusercontent.com/chrome/<accountUuid> and sends an OAuth token.
  1. The bridge rejects every connection with: Bridge error: Invalid token or user mismatch (code 1008).
  1. Claude Desktop retries with exponential backoff but never falls back to the local socket.

Suspected Root Cause

The OAuth token from apple_subscription billing accounts may not be recognized by the bridge's auth validation. The bridge returns "user mismatch" suggesting the token resolves to a different user identity than expected.

Troubleshooting Attempts (Did NOT Fix)

  • Setting tengu_copper_bridge: false in ~/.claude.json (only affects Claude Code CLI, not Desktop)
  • Logging out and back into the Chrome extension
  • Restarting Chrome and Claude Desktop
  • Clearing all Claude Desktop cache/cookies/sessions
  • Reinstalling the Chrome extension
  • Disabling macOS firewall
  • Removing Claude Code CLI native messaging host
  • Disabling other MCP servers

Suggested Fixes

  1. Fix bridge auth for Apple subscription accounts
  2. Add local socket fallback when bridge auth fails after N attempts
  3. Provide a client-side override to disable the bridge

View original on GitHub ↗

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