[BUG] Chrome native messaging host crashes with Bun panic when Windows username contains Unicode emoji
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?
The claude.exe --chrome-native-host process crashes immediately on launch with a Bun runtime internal assertion failure. This prevents the Claude browser extension from connecting to Claude Code via native messaging.
The native messaging host constructs a named pipe path using the OS username. When the username contains Unicode emoji characters, the Bun runtime panics with an internal assertion failure when attempting to create the pipe.
What Should Happen?
The native messaging host should start successfully and create the named pipe regardless of Unicode characters in the username. The browser extension should then be able to connect to Claude Code.
Error Messages/Logs
[Claude Chrome Native Host] Initializing...
[Claude Chrome Native Host] Creating socket listener: \.\pipe\claude-mcp-browser-bridge-☁️<username>
============================================================
Bun Canary v1.3.9-canary.51 (d5628db2) Windows x64 (baseline)
Windows v.win11_dt
CPU: sse42 avx avx2 avx512
Args: "C:\Users\<user>\.local\bin\claude.exe" "--chrome-native-host"
Features: Bun.stdin(2) jsc standalone_executable
Builtins: "bun:main" "node:buffer" "node:child_process" "node:crypto" "node:fs" "node:fs/promises" "node:net" "node:os" "node:path" "node:process" "node:stream" "node:timers/promises" "node:url" "node:util"
Elapsed: 150ms | User: 78ms | Sys: 78ms
RSS: 0.30GB | Peak: 0.30GB | Commit: 0.42GB | Faults: 74517 | Machine: 33.93GB
panic(main thread): Internal assertion failure
oh no: Bun has crashed. This indicates a bug in Bun, not your code.
Steps to Reproduce
- Have a Windows user account with a Unicode emoji in the username (e.g.,
AzureAD+☁️Username) - Install Claude Code 2.1.37
- Install the Claude browser extension in a Chromium-based browser
- Run
claude.exe --chrome-native-host(or trigger it via the browser extension's native messaging) - Observe the Bun panic crash
The named pipe is constructed as \.\pipe\claude-mcp-browser-bridge-<username>, where <username> includes the emoji. The UTF-8 bytes of the pipe name are correct (verified: E2 98 81 EF B8 8F for ☁️), but the Bun runtime crashes when trying to create the listener on that path.
Claude Model
Not sure / Multiple models
Is this a regression?
I don't know
Claude Code Version
2.1.37 (Claude Code)
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Windows Terminal
Additional Information
- The crash is reproducible 100% of the time
- A potential fix would be to sanitize or hash the username before using it in the pipe name, or use a different identifier (like a UUID) for the pipe path
- While uncommon, Windows usernames can contain Unicode emoji characters, and the named pipe construction should handle them gracefully
This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗