[BUG] Orphaned `chrome-native-host` processes accumulate and crash Chrome

Resolved 💬 5 comments Opened Feb 13, 2026 by peterjduffy Closed Apr 9, 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?

Orphaned chrome-native-host processes accumulate and crash Chrome

Description

The Chrome extension's native messaging host (chrome-native-host) leaves orphaned processes behind after disconnections. Over time these accumulate silently and appear to destabilise Chrome, causing repeated crashes - particularly under moderate tab load (7-8 tabs).

Steps to reproduce

  1. Install Claude desktop app + Chrome extension
  2. Use Chrome normally over 1-2 days with several tabs open
  3. Run ps aux | grep chrome-native-host - multiple stale processes accumulate

Observed behaviour

Two orphaned chrome-native-host processes were found running simultaneously, one spawned ~18 hours before the other. Neither had a live Chrome connection. Chrome was crashing repeatedly until both were manually killed.

$ ps aux | grep chrome-native-host
peterduffy  96058  0.0  0.0  435322992  3856  ??  S  Wed06PM  0:00.00  /Applications/Claude.app/Contents/Helpers/chrome-native-host chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/
peterduffy  13725  0.0  0.0  435322144  3856  ??  S  Thu04AM  0:00.00  /Applications/Claude.app/Contents/Helpers/chrome-native-host chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/

Expected behaviour

chrome-native-host should detect when its parent Chrome connection (stdin/stdout pipe) has closed and self-terminate. Only one instance should be running at a time.

Workaround

Kill stale processes manually:

pkill -f chrome-native-host

Chrome re-spawns a fresh instance on the next extension interaction.

Environment

  • Claude desktop app: 1.1.2321
  • Chrome: 145.0.7632.68
  • Chrome extension ID: fcoeoabgfenejglbffodgkkbkcdhcgfn
  • macOS: 26.2 (25C56)
  • Architecture: arm64 (Apple Silicon)
  • Native host manifest: ~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_browser_extension.json
  • Native host binary: /Applications/Claude.app/Contents/Helpers/chrome-native-host (universal binary, correctly configured)

What Should Happen?

z

Error Messages/Logs

The native messaging protocol uses stdin/stdout. When Chrome closes
    a connection it closes the stdin pipe, so `chrome-native-host`
   should:

   1. **Exit on stdin EOF.** Poll or read stdin and terminate
   immediately when the pipe closes. This is the standard
   native-messaging contract - if stdin closes, the host has no
   parent.
   2. **Guard against duplicate instances.** Use a PID file or lock so
    that a new spawn detects and reaps any previous instance before
   starting.
   3. **Time out on idle.** If no message arrives within a reasonable
   window (e.g. 30-60 s), treat the connection as dead and exit rather
    than blocking indefinitely on a stale pipe.

   Any one of these would prevent orphan accumulation. Together they
   would make the problem impossible.

   ### Workaround

   Kill stale processes manually:

   
   pkill -f chrome-native-host

Steps to Reproduce

Orphaned chrome-native-host processes accumulate and crash Chrome

Description

The Chrome extension's native messaging host (chrome-native-host) leaves orphaned processes behind after disconnections. Over time these accumulate silently and appear to destabilise Chrome, causing repeated crashes - particularly under moderate tab load (7-8 tabs).

Steps to reproduce

  1. Install Claude desktop app (1.1.2321) and the Claude Chrome extension.
  2. Open Chrome with 7-8 tabs and use it normally for a day or two. No specific interaction with the extension is required - just normal browsing with the extension installed.
  3. Chrome will crash or become unresponsive at some point. Reopen Chrome and continue.
  4. After one or more crash/restart cycles, check for orphaned processes:

``bash
ps aux | grep chrome-native-host | grep -v grep
``

  1. Multiple chrome-native-host processes will be running, each from a different spawn time. Only one (at most) has a live connection.

Note: The issue is timing-dependent and not instant to trigger. It appears to require at least one Chrome crash or restart while the extension is active, which leaves a stale process behind. Each subsequent cycle adds another.

Observed behaviour

Two orphaned chrome-native-host processes were found running simultaneously, one spawned ~18 hours before the other. Neither had a live Chrome connection. Chrome was crashing repeatedly until both were manually killed.

$ ps aux | grep chrome-native-host
peterduffy  96058  0.0  0.0  435322992  3856  ??  S  Wed06PM  0:00.00  /Applications/Claude.app/Contents/Helpers/chrome-native-host chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/
peterduffy  13725  0.0  0.0  435322144  3856  ??  S  Thu04AM  0:00.00  /Applications/Claude.app/Contents/Helpers/chrome-native-host chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/

Expected behaviour

The native messaging protocol uses stdin/stdout. When Chrome closes a connection it closes the stdin pipe, so chrome-native-host should:

  1. Exit on stdin EOF. Poll or read stdin and terminate immediately when the pipe closes. This is the standard native-messaging contract - if stdin closes, the host has no parent.
  2. Guard against duplicate instances. Use a PID file or lock so that a new spawn detects and reaps any previous instance before starting.
  3. Time out on idle. If no message arrives within a reasonable window (e.g. 30-60 s), treat the connection as dead and exit rather than blocking indefinitely on a stale pipe.

Any one of these would prevent orphan accumulation. Together they would make the problem impossible.

Workaround

Kill stale processes manually:

pkill -f chrome-native-host

Chrome re-spawns a fresh instance on the next extension interaction.

Environment

  • Claude desktop app: 1.1.2321
  • Chrome: 145.0.7632.68
  • Chrome extension ID: fcoeoabgfenejglbffodgkkbkcdhcgfn
  • macOS: 26.2 (25C56)
  • Architecture: arm64 (Apple Silicon)
  • Native host manifest: ~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_browser_extension.json
  • Native host binary: /Applications/Claude.app/Contents/Helpers/chrome-native-host (universal binary, correctly configured)

Claude Model

None

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

2.1.41

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

_No response_

View original on GitHub ↗

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