[Bug] Native binary crashes with SIGILL on CPUs without AVX2 support

Status Open
Reported on v2.1.112
Maintainer reply None cached
Activity 1 comment · opened Jul 30, 2026

Bug Description
Native binary crashes with SIGILL on CPUs without AVX2 (e.g. Sandy Bridge)

Environment Info

  • Platform: darwin
  • Terminal: iTerm.app
  • Version: 2.1.112
  • Feedback ID: 04ad32ab-063c-4511-80dc-17a28721387e

Additional Context

Every install path that ships the native (Bun-compiled) binary crashes immediately with SIGILL on this CPU (Intel Core i7-2600 / Sandy Bridge, macOS 15.7.3). This includes the standalone installer, the VS Code extension's bundled binary, and npm installs of version 2.1.113+ (npm switched from a pure JS build to the native binary at that version).

Native installer output:
curl -fsSL https://claude.ai/install.sh | bash
Setting up Claude Code...
bash: line 183: 28876 Illegal instruction: 4 "$binary_path" install ${TARGET:+"$TARGET"}
Installation was killed before it could finish (exit code 132).

npm install of current version also fails:
npm install -g @anthropic-ai/claude-code
claude --version
Illegal instruction: 4

Workaround: pinned to the last pre-Bun pure-JS release, 2.1.112, which works fine:
npm install -g @anthropic-ai/claude-code@2.1.112
claude --version
2.1.112 (Claude Code)

Auto-update then immediately tries to pull the current (broken) native release on next launch:
Claude Code has switched from npm to native installer. Run claude install or see https://docs.anthropic.com/en/docs/claude-code/getting-started for more options.

Had to disable auto-update to keep the working pinned version, via DISABLE_AUTOUPDATER=1 in ~/.bash_profile and in ~/.claude/settings.json env block. Confirmed via claude doctor:
Auto-updates: disabled (set by env: DISABLE_AUTOUPDATER)

The VS Code extension (v2.1.220) also spawns its own bundled native binary regardless of this setup, from ~/.vscode/extensions/anthropic.claude-code-2.1.220-darwin-x64/resources/native-binary/claude, producing:
Error spawning Claude (on channel ...): Error: Claude Code process terminated by signal SIGILL
Error processing client request: Error: Claude Code process terminated by signal SIGILL
claude auth status parse failed: SyntaxError: Unexpected end of JSON input

Enabling "Claude Code: Use Terminal" and/or setting "Claude Code: Claude Process Wrapper" to the pinned npm binary path seems to be the only way to route the extension through a working binary.

Impact: any pre-Haswell CPU (no AVX2) cannot use Claude Code through any officially recommended install method. The only workaround is manually pinning an old npm release, which is undocumented and fights the auto-updater.

Suggested fixes:

  1. Ship a baseline binary build without a hard AVX2 requirement, similar to how many toolchains offer a -baseline/-generic build for pre-Haswell CPUs.
  2. Detect SIGILL crashes and print an actionable error instead of the bare "Illegal instruction" message.
  3. Document that npm versions before 2.1.113 are pure-JS builds without the AVX2 dependency.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗