Chrome integration regression: "Invalid token or user mismatch" since v2.1.38/2.1.39 (was working in 2.1.37)

Resolved 💬 3 comments Opened Mar 3, 2026 by m34ymg Closed Mar 7, 2026

Summary

Claude in Chrome browser automation worked perfectly in v2.1.37 (Feb 9-10) and broke starting in v2.1.39 (Feb 12). The WebSocket bridge at bridge.claudeusercontent.com now rejects every connection with "Invalid token or user mismatch" (close code 1008). This is a regression, not a new setup issue.

Evidence: Before and After

Working (v2.1.37, Feb 9-10)

2026-02-09T09:52:57 CALL tabs_context_mcp
2026-02-09T09:53:02 → SUCCESS (availableTabs returned with real tabIds)
2026-02-09T09:53:07 CALL navigate → SUCCESS (navigated to internal site)
2026-02-09T10:29:14 CALL computer → SUCCESS (screenshot captured)

Full browser automation working: navigation, screenshots, form interaction, tab management. 6 successful tool calls, 0 failures in that session.

Broken (v2.1.39+, Feb 12 onwards)

2026-02-12T05:14:21 CALL tabs_context_mcp
2026-02-12T05:14:22 → FAILED: Browser extension is not connected

Every session from v2.1.39 through current v2.1.63 fails identically. 0 successes across dozens of sessions over 3 weeks.

Bridge error (debug log)

[Claude in Chrome] Connecting to bridge: wss://bridge.claudeusercontent.com/chrome/<account-uuid>
[Claude in Chrome] WebSocket connected, sending connect message
[Claude in Chrome] Bridge received: {"type":"error","error":"Invalid token or user mismatch"}
[Claude in Chrome] Bridge connection closed (code: 1008, duration: 0ms)
[Claude in Chrome] Bridge reconnecting in 3000ms (attempt 2)

The WebSocket connects fine. The bridge rejects the OAuth token in the auth handshake. This repeats every 30 seconds until the retry limit is reached.

Environment

  • macOS: 26.2 (Apple Silicon / arm64)
  • Claude Code: v2.1.63 (broken since v2.1.39)
  • Last working version: v2.1.37
  • Chrome extension: v1.0.56
  • Plan: Max (direct Anthropic, not Bedrock/Vertex)
  • Account: Same account throughout, confirmed matching in both CLI and extension

What I've Tried

All of these made no difference:

  1. Removed Claude Desktop entirely (uninstalled from /Applications)
  2. Removed Claude Desktop's native messaging host config (com.anthropic.claude_browser_extension.json) to eliminate collision
  3. Full claude logoutclaude login cycle
  4. Restarted Chrome multiple times
  5. Restarted Claude Code (fresh sessions)
  6. Ran /chrome → "Reconnect extension"
  7. Started with claude --chrome flag
  8. Killed stale --chrome-native-host processes
  9. Killed all other Claude Code sessions
  10. Verified extension enabled in chrome://extensions/
  11. Verified same email account in both CLI config and claude.ai

Config State

// ~/.claude.json (relevant fields)
{
  "hasCompletedClaudeInChromeOnboarding": true,
  "cachedChromeExtensionInstalled": true,
  "claudeInChromeDefaultEnabled": true
}

// Feature flag (server-side, cannot override locally)
// cachedGrowthBookFeatures:
"tengu_chrome_auto_enable": false

Note: tengu_chrome_auto_enable is false but the feature was working in v2.1.37 with presumably the same flag state. So either the flag wasn't checked in v2.1.37 and a new gate was added in v2.1.38+, or the flag was true and got flipped server-side around the same time.

Native Messaging Host

// ~/Library/Application Support/Google/Chrome/NativeMessagingHosts/
// com.anthropic.claude_code_browser_extension.json
{
  "name": "com.anthropic.claude_code_browser_extension",
  "description": "Claude Code Browser Extension Native Host",
  "path": "/Users/<redacted>/.claude/chrome/chrome-native-host",
  "type": "stdio",
  "allowed_origins": ["chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/"]
}

Related Issues

  • #25618 — Same "Invalid token or user mismatch" error (closed as not planned)
  • #25736 — macOS duplicate (closed)
  • #29528 — Similar report with feature flag analysis

The difference: this is a confirmed regression with exact version pinpointing (working in 2.1.37, broken in 2.1.39), not a fresh install problem. Session JSONL logs provide before/after proof from the same machine and account.

View original on GitHub ↗

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