[BUG] Segmentation fault on interactive startup on Synology NAS (React 19 + Ink incompatibility)
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?
## Description
Claude Code segfaults immediately when starting in interactive mode on Synology NAS. Non-interactive mode (claude -p "prompt") works fine.
## System Information
- OS: Linux Synology 4.4.302+ (DSM 7.x on DS920+, geminilake architecture)
- Node.js: v20.9.0 (also tested v18.18.2 - same issue)
- Claude Code: 2.1.12 (also tested 2.1.3 - same issue)
- TERM: xterm-256color
- glibc: 2.36
## Steps to Reproduce
- Install Claude Code on Synology NAS via
npm install -g @anthropic-ai/claude-code - Run
claude(interactive mode) - Screen goes blank briefly, then:
zsh: segmentation fault (core dumped) claude
## What Works
claude --version✅claude --help✅claude -p "prompt"✅ (non-interactive mode)- Basic Node.js TTY operations ✅
- Native modules (ripgrep, sharp) ✅
- WASM modules (tree-sitter, resvg) ✅
## Root Cause Analysis
Extensive debugging traced the crash to the Ink.render() call. Testing revealed:
- Ink 6.6.0 + React 19 → Segfault on Synology
- Ink 4.x + React 18 → Works perfectly
Claude Code bundles React 19 with Ink 6, which has an incompatibility that manifests as a segfault on Synology's older kernel (4.4.302).
### Reproduction with standalone Ink
```javascript
// This segfaults on Synology with Ink 6 + React 19:
import React from 'react';
import { render, Text } from 'ink';
const App = () => React.createElement(Text, { color: 'green' }, 'Hello');
render(React.createElement(App));
Same code works fine with Ink 4 + React 18.
Debug Output
Running with NODE_DEBUG=net shows the crash occurs after network sockets complete their handshakes, right when the TUI should render:
NET: afterConnect
NET: Socket._handle.readStart
zsh: segmentation fault (core dumped)
Possible Solutions
- Downgrade to React 18 + Ink 4 until Ink properly supports React 19
- Add platform detection to fall back to non-TUI mode on affected systems
- Investigate the specific React 19 + Ink interaction causing the crash
Workaround
Use non-interactive mode: claude -p "your prompt here"
Additional Context
- Tested on both Claude Code 2.1.3 and 2.1.12 - same crash
- Tested on both Node.js 18.18.2 and 20.9.0 - same crash
- All standard debugging approaches (clearing cache, different Node versions, disabling native modules) did not help
- The Synology kernel 4.4.302 is older but supports glibc 2.36 and modern Node.js
What Should Happen?
claude should show its UI
Error Messages/Logs
zsh: segmentation fault (core dumped) claude
Steps to Reproduce
- Install Claude Code on Synology NAS via
npm install -g @anthropic-ai/claude-code - Run
claude(interactive mode) - Screen goes blank briefly, then:
zsh: segmentation fault (core dumped) claude
Claude Model
Not sure / Multiple models
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.12 (Claude Code)
Platform
Anthropic API
Operating System
Other
Terminal/Shell
Terminal.app (macOS)
Additional Information
troubleshooted using ssh in claude code from a different system, who ultimately determined this is a bug in claude code itself
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗