[BUG] SIGILL on ARM64 AVF (Android Virtualization Framework) VM — regression introduced in v2.1.113
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?
Claude Code crashes with Illegal instruction (SIGILL) on ARM64 Linux running inside an Android Virtualization Framework (AVF) virtual machine. The AVF hypervisor filters certain CPU instructions from guests even when the host hardware supports them fully. A binary search confirmed this is a clean regression introduced between v2.1.112 (working) and v2.1.113 (broken).
This is not the 64K page size issue from #25713 — page size is confirmed 4K.
What Should Happen?
claude --version should print a version number.
Error Messages/Logs
============================================================
Bun v1.3.14 (0a466a11) Linux arm64
Linux Kernel v6.1.0 | glibc v2.36
CPU: neon fp aes crc32 atomics
Args: /usr/bin/bash: line 3: 1310 Illegal instruction ( claude --version )
Steps to Reproduce
npm install -g @anthropic-ai/claude-code@2.1.113
claude --version # → SIGILL crash
npm install -g @anthropic-ai/claude-code@2.1.112
claude --version # → works correctly
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
2.1.112
Claude Code Version
2.1.113
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
Other
Additional Information
Environment
| Field | Value |
|---|---|
| Last working version | v2.1.112 |
| First broken version | v2.1.113 |
| OS | Debian 12 (Bookworm) |
| Kernel | 6.1.0-34-avf-arm64 |
| Architecture | ARM64 (aarch64) |
| Hypervisor | Android Virtualization Framework (AVF / pKVM) |
| Host device | Samsung Galaxy Tab S11 Ultra (Snapdragon 8 Gen 1) |
| glibc | 2.36 |
| Page size | 4096 (4K — not the #25713 issue) |
| Node.js | v24.15.0 (via NVM) |
| Installation method | npm |
CPU Info
CPU parts present: 0xd81 (Cortex-A510) × 3, 0xd82 (Cortex-A710) × 3, 0xd85 (Cortex-X2) × 1 — a fully modern ARMv9 big.LITTLE configuration.
Full CPU features exposed by AVF guest kernel:
fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid
asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 asimdfhm
dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull
svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh
bti ecv afp wfxt
Analysis
The host hardware (Snapdragon 8 Gen 1) fully supports ARMv9 including SVE2, LSE2, etc. However, the AVF hypervisor exposes a filtered subset of instructions to the guest VM. Something introduced in the Bun binary between v2.1.112 and v2.1.113 uses an instruction that falls outside what AVF permits.
Diffing the Bun version or compiler flags between these two Claude Code releases should identify the specific instruction.
Workaround
npm install -g @anthropic-ai/claude-code@2.1.112
echo 'export DISABLE_AUTOUPDATER=1' >> ~/.bashrcThis issue has 2 comments on GitHub. Read the full discussion on GitHub ↗