[BUG] Stdio MCP servers fail to connect on RHEL 8 with native binary

Resolved 💬 5 comments Opened Feb 23, 2026 by aaronerbe Closed Feb 27, 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?

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

  1. Install Claude Code native binary on RHEL 8
  2. Configure at least one stdio MCP server and one SSE MCP server
  3. Launch Claude Code
  4. SSE server connects; stdio servers time out after 30 seconds
  5. 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.

View original on GitHub ↗

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