[BUG] Stdio MCP servers fail to connect on RHEL 8 with native binary
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?
Stdio-based MCP servers time out and never connect when claude is starting up. The child process's stdin receives immediate EOF, causing the server to exit within 15ms of starting. SSE-based MCP servers connect normally from the same binary. We are able to manually reconnect after claude starts up using /mcp
What Should Happen?
Stdio MCP servers should complete the JSON-RPC handshake and connect, as they do when the same version is installed via npm and run on Node.js 20 or with previous Claude versions (e.g. 2.1.7)
Error Messages/Logs
Debug log (claude --debug "mcp"):
22:01:08.104Z Stdio server A: Starting connection with timeout of 30000ms
22:01:08.133Z Stdio server B: Starting connection with timeout of 30000ms
22:01:08.743Z Stdio server B stderr: "server started successfully"
22:01:09.289Z SSE server: Starting connection with timeout of 30000ms
22:01:14.013Z SSE server: Connection established with capabilities ← works
22:01:38.129Z Stdio server A: Connection timeout after 30029ms ← fails
22:01:38.171Z Stdio server B: Connection timeout after 30040ms ← fails
Zero log entries between connection start and timeout for stdio servers — no initialize request sent, no pipe errors, no data exchange.
Server-side log from the Python-based stdio server:
15:01:11.199 - Starting MCP Server ← stdio run() called
15:01:11.214 - Session ended ← 0.015s later, stdin EOF
In a separate session, the same server received a bare \n instead of JSON-RPC:
11:57:39.938 - ERROR - Invalid JSON: EOF while parsing a value
at line 2 column 0 [input_value='\n', input_type=str]
Steps to Reproduce
- Install Claude Code native binary on RHEL 8
- Configure at least one stdio MCP server and one SSE MCP server
- Launch Claude Code
- SSE server connects; stdio servers time out after 30 seconds
- Install the same version via npm, run on Node.js 20 — stdio servers connect immediately
Claude Model
Not sure / Multiple models
Is this a regression?
Yes, this worked in a previous version
Last Working Version
2.1.7 - have not checked all version between this and 2.1.50.
Claude Code Version
2.1.50
Platform
AWS Bedrock
Operating System
Other Linux
Terminal/Shell
Xterm
Additional Information
- 100% reproducible on this system
- Server B's stderr confirms it started successfully; no data ever arrives on its stdin
- Claude Code does not detect the child process death and waits the full 30 seconds
- Possibly related: #12084 (Bun stdin issues on RHEL 8)
Note - this is in enterprise environment. This is a big stopper for us as we cannot easily migrate RHEL version. Claude Code was working fine on older versions - presumably before the native binary was pushed. I have not tested all versions with that though. We have tried multiple versions of RHEL 8 with the same issue.
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗