Illegal instruction crash on ARM64 Linux in Apple Virtualization Framework (AVF) — embedded Bun runtime incompatible

Status Open
Reported on v2.1.140
Maintainer reply None cached
Activity 0 comments · opened Jul 20, 2026

Environment

  • OS: Debian Linux, kernel 6.1.0-34-avf-arm64 (Apple Virtualization Framework VM)
  • Architecture: aarch64 (ARM64)
  • CPU part: 0xd81 (ARM Neoverse V2)
  • CPU features: SVE2, BTI, I8MM, BF16, FEAT_LRCPC, FEAT_PAC, and many more
  • glibc: 2.36
  • Node.js: v20.20.2

Problem

All Claude Code versions from 2.1.140 onward crash with Illegal instruction (exit code 132) on this system. These versions ship a native ARM64 binary that embeds Bun as its JavaScript runtime.

$ claude --version
============================================================
Bun v1.3.14 (d2989145) Linux arm64
Illegal instruction

Bun versions tested that crash: 1.3.14 (embedded in 2.1.140) and 1.4.0 (embedded in 2.1.181+).

Notably, Bun 1.3.14 installed via the official bun.sh installer works fine on the same system — suggesting the embedded Bun binary uses different compile flags (e.g., targeting ARM instructions not exposed by the AVF hypervisor).

Reproduction

npm install -g @anthropic-ai/claude-code   # installs latest (2.1.215+)
claude --version  # → Illegal instruction (exit 132)

Also reproduced with the official install script:

curl -fsSL https://claude.ai/install.sh | bash  # → Illegal instruction (exit 132)

Workaround

Install the last Node.js-based version:

npm install -g @anthropic-ai/claude-code@2.1.112

This works because older versions use Node.js as the runtime instead of a bundled Bun binary.

Request

Please either:

  1. Investigate which ARM instruction the embedded Bun uses that the official bun.sh build avoids, or
  2. Fall back to Node.js on systems where the native binary fails to execute.

View original on GitHub ↗