[BUG] Chrome native host crashes with EADDRINUSE on Windows - named pipe conflict

Resolved 💬 4 comments Opened Feb 6, 2026 by FedeSuriMIT Closed Mar 7, 2026

Bug Description

Claude in Chrome extension cannot connect to Claude Code CLI on Windows. The native messaging host (chrome-native-host.bat) crashes with EADDRINUSE because it tries to create a named pipe that Claude Code has already created, instead of connecting to it.

Environment

  • Claude Code: 2.1.33
  • OS: Windows 11 (NT 10.0.26200.0)
  • Chrome: 144.0.7559.133
  • Node.js: v23.9.0
  • Extension: Claude in Chrome (Beta) - fcoeoabgfenejglbffodgkkbkcdhcgfn
  • Claude Desktop: Installed (v1.1.1520) but NOT running during tests

Steps to Reproduce

  1. Install Claude in Chrome extension
  2. Start Claude Code CLI (claude in terminal)
  3. Extension shows as installed in /chrome settings
  4. Any mcp__claude-in-chrome__* tool call returns "Browser extension is not connected"

Diagnostic Details

Native host crash log

Running the native host manually produces:

[Claude Chrome Native Host] Initializing...
[Claude Chrome Native Host] Creating socket listener: \.\pipe\claude-mcp-browser-bridge-feder
[Claude Chrome Native Host] Socket server error: Error: listen EADDRINUSE: address already in use \.\pipe\claude-mcp-browser-bridge-feder
    at Server.setupListenHandle [as _listen2] (node:net:1915:21)
    at listenInCluster (node:net:1994:12)
    at Server.listen (node:net:2116:5)
    at file:///C:/Users/feder/AppData/Roaming/npm/node_modules/@anthropic-ai/claude-code/cli.js:6226:1029

Root cause

Claude Code creates the named pipe \.\pipe\claude-mcp-browser-bridge-{username}. When Chrome spawns the native messaging host (via chrome-native-host.bat), the host also attempts to listen() on the same pipe name → EADDRINUSE crash.

The native host should connect to the existing pipe as a client, not try to create a new server on it.

Configuration verified

  • Registry: HKCU\Software\Google\Chrome\NativeMessagingHosts\com.anthropic.claude_code_browser_extension ✅ (points to correct manifest)
  • Manifest: C:\Users\feder\AppData\Roaming\Claude Code\ChromeNativeHost\com.anthropic.claude_code_browser_extension.json
  • Bat file: C:\Users\feder\.claude\chrome\chrome-native-host.bat
  • Node.exe path: C:\Program Files\nodejs\node.exe
  • Extension installed and functional (side panel works) ✅
  • Logged into claude.ai ✅

Troubleshooting attempted

  • [x] Restarted Chrome
  • [x] Restarted Claude Code
  • [x] /chrome → Reconnect extension
  • [x] Killed all Chrome and Claude processes, restarted both
  • [x] Temporarily disabled Claude Desktop native host (renamed .json.json.bak)
  • [x] Copied manifest to %APPDATA%\Google\Chrome\NativeMessagingHosts\
  • [x] No other Claude Code sessions running

None of the above resolved the issue. The EADDRINUSE error persists as long as Claude Code is running (which is expected, since Claude Code owns the pipe).

Expected Behavior

The native messaging host should connect to Claude Code's existing named pipe as a client, enabling the extension ↔ Claude Code bridge.

Related Issues

  • #23218, #21363, #22052, #21300 - Similar "not connecting" reports on Windows
  • #20546 - Desktop/Code conflict for same extension

View original on GitHub ↗

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