v2.1.15 crashes on CPUs without AVX (regression from 2.1.14)

Resolved 💬 33 comments Opened Jan 21, 2026 by McSchnizzle Closed Jan 23, 2026
💡 Likely answer: A maintainer (ant-kurt, collaborator) responded on this thread — see the highlighted reply below.

Description

Claude Code v2.1.15 crashes immediately on startup with an "Illegal instruction" error on systems where the CPU lacks AVX support. This is a regression - v2.1.14 and earlier worked fine on the same system.

Environment

  • OS: Ubuntu 24.04 (Linux Kernel v6.8.0, glibc v2.39)
  • CPU: Intel Xeon Gold 6142 @ 2.60GHz (running in a VM without AVX passthrough)
  • Claude Code version: 2.1.15 (crashes), 2.1.14 (works)
  • Bun version (from crash output): Bun v1.3.6

Error Output

$ claude
============================================================
Bun v1.3.6 (d530ed99) Linux x64 (baseline)
Linux Kernel v6.8.0 | glibc v2.39
CPU: sse42 popcnt
Args: "claude"
Features: Bun.stderr(2) Bun.stdin(2) Bun.stdout(2) fetch(15) jsc no_avx2 no_avx spawn(4) standalone_executable 
Builtins: "bun:main" "node:assert" "node:async_hooks" ...

CPU lacks AVX support. Please consider upgrading to a newer CPU.
panic(main thread): Illegal instruction at address 0x4001FB4
oh no: Bun has crashed. This indicates a bug in Bun, not your code.

Illegal instruction (core dumped)

Workaround

Rolling back to v2.1.14 resolves the issue:

ln -sf ~/.local/share/claude/versions/2.1.14 ~/.local/bin/claude

Notes

  • The physical CPU (Xeon Gold 6142) supports AVX, but the VM hypervisor does not expose AVX instructions to the guest
  • This is a common configuration in enterprise/cloud VM environments
  • v2.1.14 binary is ~220MB, v2.1.15 is ~218MB - suggests a change in the Bun build used
  • The crash output shows Features: ... no_avx2 no_avx ... indicating Bun detects the missing instructions but crashes anyway

Expected Behavior

Claude Code should work on systems without AVX support, as it did in v2.1.14 and earlier versions.

View original on GitHub ↗

33 Comments

github-actions[bot] · 5 months ago

Found 1 possible duplicate issue:

  1. https://github.com/anthropics/claude-code/issues/19904

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

rfmsanz-ethan · 5 months ago

+1

This is happening for me on Windows with ARM64 processor, and Mac M4 (ARM64) as well.

Reverted to 2.1.14 and everything is fine.

2.1.15 will not launch at all. This should be considered a major issue as ARM processors are becoming more and more common.

rfmsanz-ethan · 5 months ago
Bun v1.3.6 (d530ed99) Windows x64 (baseline)
Windows v.win11_dt
CPU: sse42
Args: "C:\Users\***\.local\bin\claude.exe"
Features: Bun.stderr Bun.stdin(2) Bun.stdout(3) WebSocket fetch(53) jsc no_avx2 no_avx spawn(33) standalone_executable process_dlopen
Builtins: "bun:main" "node:assert" "node:async_hooks" "node:buffer" "node:child_process" "node:constants" "node:crypto" "node:domain" "node:events" "node:fs" "node:fs/promises" "node:http" "node:https" "node:module" "node:net" "node:os" "node:path" "node:path/posix" "node:path/win32" "node:perf_hooks" "node:process" "node:querystring" "node:stream" "node:timers/promises" "node:tls" "node:tty" "node:url" "node:util" "node:zlib" "node:worker_threads" "undici" "ws" "node-fetch" "node:inspector" "node:http2" "node:diagnostics_channel"
Elapsed: 6770ms | User: 2781ms | Sys: 4187ms
RSS: 0.84GB | Peak: 0.89GB | Commit: 0.90GB | Faults: 255656 | Machine: 17.17GB

CPU lacks AVX support. Please consider upgrading to a newer CPU.
panic(main thread): Illegal instruction at address 0x7FF7C4D680FC
oh no: Bun has crashed. This indicates a bug in Bun, not your code.

This is a ARM64 (not x64) CPU via VM hypervisor.

ericlevy · 5 months ago

Also affected on macOS.

OS: macOS (darwin-x64)
CPU: Pre-AVX Mac
Node: v20.19.0
Working version: 2.1.14 (from ~/.local/share/claude/versions/)

Same error: warn: CPU lacks AVX support followed by error: Invalid DNS result order.
Workaround confirmed: symlinking the cached 2.1.14 binary works.

chushao · 5 months ago

Same issue and error message as ericlevy on macOS.
CPU is a M1 Pro.

Using 2.1.14 binary works.

bwads001 · 5 months ago
  1. ✅ Added DISABLE_AUTOUPDATER=1 to ~/.claude/settings.json
  2. ✅ Rolled back to Claude CLI 2.1.14
  3. ✅ Verified 2.1.14 works without AVX crash
MELTzx · 5 months ago

Also affected on Linux.

Architecture: x86_64
CPU(s): 4
On-line CPU(s) list: 0-3
Model name: Intel(R) Celeron(R) J4125 CPU @ 2.00GHz
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl cpuid tsc_known_freq pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave rdrand hypervisor lahf_lm 3dnowprefetch pti ssbd ibrs ibpb stibp fsgsbase tsc_adjust smep erms mpx rdseed smap clflushopt xsaveopt xsavec xgetbv1 md_clear arch_capabilities
Hypervisor vendor: Microsoft
Virtualization type: full
NUMA node0 CPU(s): 0-3

============================================================
Bun v1.3.6 (d530ed99) Linux x64 (baseline)
Linux Kernel v6.8.0 | glibc v2.39
CPU: sse42 popcnt
Args: "claude"
Features: Bun.stderr(2) Bun.stdin(2) Bun.stdout(2) fetch(21) jsc no_avx2 no_avx spawn(15) standalone_executable
Builtins: "bun:main" "node:assert" "node:async_hooks" "node:buffer" "node:child_process" "node:constants" "node:crypto" "node:domain" "node:events" "node:fs" "node:fs/promises" "node:http" "node:https" "node:module" "node:net" "node:os" "node:path" "node:path/posix" "node:path/win32" "node:perf_hooks" "node:process" "node:querystring" "node:stream" "node:timers/promises" "node:tls" "node:tty" "node:url" "node:util" "node:zlib" "node:worker_threads" "undici" "ws" "node-fetch" "node:inspector" "node:http2" "node:diagnostics_channel"
Elapsed: 8523ms | User: 3943ms | Sys: 1315ms
RSS: 1.20GB | Peak: 0.43GB | Commit: 1.20GB | Faults: 0 | Machine: 8.33GB

CPU lacks AVX support. Please consider upgrading to a newer CPU.
panic(main thread): Illegal instruction at address 0x4001FB4
oh no: Bun has crashed. This indicates a bug in Bun, not your code.

kamihork · 5 months ago

I encountered a similar problem on macOS, and it was resolved by rolling back to v2.1.14.

macOS Tahoe version26.0.1
Apple M2

$claude --version
warn: CPU lacks AVX support, strange crashes may occur. Reinstall Bun or use *-baseline build:
  https://github.com/oven-sh/bun/releases/download/bun-v1.3.6/bun-darwin-x64-baseline.zip
error: Invalid DNS result order.
weidwonder · 5 months ago

+1
OK when using npm install claude code .
but using claude install or native installer to install claude it show this warning and even can't start up on M4 chip.

shows like

warn: CPU lacks AVX support, strange crashes may occur. Reinstall Bun or use *-baseline build:
https://github.com/oven-sh/bun/releases/download/bun-v1.3.6/bun-darwin-x64-baseline.zip
error: Invalid DNS result order.

NovacomExperts · 5 months ago

Those of you that are using Claude Code in a Linux VM on Proxmox, try setting your VM's cpu to "Host"

Somehow the default x86-64-AES-v2 failed with the reported bug.

After shutdown + reboot, Claude Code v2.1.15 works in my environnement.

ul0gic · 5 months ago

Fix

Technical Details:

  1. Runtime Change: Claude Code 2.0.15 switched from Node.js to Bun as its JavaScript runtime
  2. Bun's AVX Requirement: Bun's JavaScript engine (JavaScriptCore) uses AVX instructions for performance optimizations and crashes when these are unavailable
  3. Virtualization Impact: Common hypervisors (QEMU/KVM, VirtualBox, VMware) often use generic CPU models by default that don't expose AVX flags to guest VMs
  4. Breaking Change: Previous Node.js-based versions worked without AVX support

Why This Happens in VMs:

  • Default QEMU CPU types like qemu64 or kvm64 only expose baseline x86-64 instructions
  • AVX support requires either:
  • Passing through the host CPU type (-cpu host)
  • Using a CPU model that includes AVX (e.g., SandyBridge, Haswell, or newer)

Resolution / Workaround

For Proxmox/QEMU users:

  1. Shut down the VM
  2. Edit the VM configuration to use host CPU passthrough:
  • In Proxmox UI: VM → Hardware → Processor → Type → Select "host"
  • Or via CLI: qm set <vmid> -cpu host
  1. Start the VM

For other hypervisors:

  • VirtualBox: Ensure "Enable Nested VT-x/AMD-V" is enabled and use a modern CPU profile
  • VMware: Use "Virtualize Intel VT-x/EPT or AMD-V/RVI" option

Verified Working: After changing the CPU type to host, Claude Code 2.1.15 launches successfully.

Check AVX availability:

grep -o 'avx[^ ]*' /proc/cpuinfo | head -1
# Should output: avx avx2 (or similar)
rfmsanz-ethan · 5 months ago
Fix 3. Virtualization Impact: Common hypervisors (QEMU/KVM, VirtualBox, VMware) often use generic CPU models by default that don't expose AVX flags to guest VMs

Unfortunately, this issue also affects non-VM users who won't have the ability to work around this.

ARM CPUs do not support AVX/AVX2 as these are instruction set extensions for the Intel x86 architecture. Many users of Claude code are Mac users on M-series processors and many are Qualcomm Snapdragon users.

Some Snapdragon processors can use the Prism emulation engine to emulate AVX support although this is generally for games and may not work for Bun. However other ARM processors including Apple silicon CPUs don't have any way around this (other than remaining on 2.1.14 for now).

tunv777 · 5 months ago

I tried to use Claude via bun by running:

bun add -g @anthropic-ai/claude-code
bun run --bun claude
sPredictorX1708 · 5 months ago

@tunv777 this works!

armanckeser · 5 months ago

After a lot of debugging, I fixed this on my m4 mac:

Claude Code ARM64 Fix (Apple Silicon)

Try this first:

curl -fsSL https://claude.ai/install.sh -o /tmp/install.sh && arch -arm64 /bin/bash /tmp/install.sh

If still failing, clean everything and retry:

rm -rf ~/.local/bin/claude ~/.local/share/claude
rm -rf ~/.bun
rm -rf "$HOME/Library/Application Support/reflex/bun"
curl -fsSL https://claude.ai/install.sh -o /tmp/install.sh && arch -arm64 /bin/bash /tmp/install.sh

If uname -m shows x86_64, your shell is running under Rosetta. Fix it:

For fish - edit ~/.config/fish/config.fish and remove lines containing:

  • /usr/local/bin (Intel Homebrew)
  • reflex/bun
  • any x86_64 bun paths

Then switch to ARM64 fish:

/opt/homebrew/bin/brew install fish
echo '/opt/homebrew/bin/fish' | sudo tee -a /etc/shells
chsh -s /opt/homebrew/bin/fish

For zsh - edit ~/.zshrc and remove same paths, then:

  • Finder → Terminal.app → Get Info → Uncheck "Open using Rosetta"

Restart terminal, verify uname -m shows arm64, then run the install.

loglux · 5 months ago

Same issue on Asustor NAS with Intel Celeron (no AVX support).

System: Linux Kernel v6.6.0, glibc v2.39
CPU flags: sse4_2, popcnt (no avx, no avx2)
Error: panic(main thread): Illegal instruction at address 0x4001FB4

Workaround that works

Step 1: Find where claude is installed

which claude
# Output: ~/.local/bin/claude

Step 2: Check the symlink

ls -lh ~/.local/bin/claude
# Output: lrwxrwxrwx 1 user users 51 Jan 21 22:05 ~/.local/bin/claude -> ~/.local/share/claude/versions/2.1.15

Step 3: List available versions

ls -la ~/.local/share/claude/versions/

Output example:

total 642856
drwx------ 2 user users      4096 Jan 22 17:54 .
drwx------ 3 user users      4096 Dec 11 18:42 ..
-rwxr-xr-x 1 user users 220074219 Jan 17 16:35 2.1.12    ← version 2.1.12
-rwxr-xr-x 1 user users 220181611 Jan 20 23:12 2.1.14    ← version 2.1.14 (works!)
-rwxr-xr-x 1 user users 218009452 Jan 21 22:05 2.1.15    ← version 2.1.15 (broken)

Step 4: Switch to working version (2.1.14)

ln -sf ~/.local/share/claude/versions/2.1.14 ~/.local/bin/claude

Step 5: Verify

claude --version
ant-kurt collaborator · 5 months ago

Confirming that there's a regression in 2.1.15 and 2.1.16, which causes Claude Code to inadvertently use AVX instructions. We'll be fixing this in the next release.

For the meantime:

rfmsanz-ethan · 5 months ago

Thank you Kurt!

Since this is being fixed, it's probably not relevant, but even with Prism emulation on Windows 11 ARM64 (25H2) I can't get claude 2.1.15 or 2.1.16 to start. With Prism disabled, I get the Bun error described in this issue. With Prism enabled, I don't get the Bun error but I just get:

Segmentation fault

josh-argyle · 5 months ago

I am having the same problem on 2.1.16.

Bun v1.3.6 (d530ed99) Linux x64 (baseline)
Linux Kernel v6.1.0 | glibc v2.36
CPU: sse42 popcnt
Args: "claude"
Features: Bun.stderr(2) Bun.stdin(2) Bun.stdout(2) fetch(52) jsc no_avx2 no_avx spawn(17) standalone_executable
Builtins: "bun:main" "node:assert" "node:async_hooks" "node:buffer" "node:child_process" "node:constants" "node:crypto" "node:domain" "node:events" "node:fs" "node:fs/promises" "node:http" "node:https" "node:module" "node:net" "node:os" "node:path" "node:path/posix" "node:path/win32" "node:perf_hooks" "node:process" "node:querystring" "node:stream" "node:timers/promises" "node:tls" "node:tty" "node:url" "node:util" "node:zlib" "node:worker_threads" "undici" "ws" "node-fetch" "node:inspector" "node:http2" "node:diagnostics_channel"
Elapsed: 1708ms | User: 1000ms | Sys: 484ms
RSS: 1.18GB | Peak: 0.43GB | Commit: 1.18GB | Faults: 0 | Machine: 16.77GB

CPU lacks AVX support. Please consider upgrading to a newer CPU.
panic(main thread): Illegal instruction at address 0x4001FB4
oh no: Bun has crashed. This indicates a bug in Bun, not your code.

To send a redacted crash report to Bun's team,
please file a GitHub issue using the link below:

https://bun.report/1.3.6/B_1d530ed9GugogigD+kgP_s1nggEs1nggEs1nggE____wyo1/D________msnt/DwujpiFA3Ao7vggE

Illegal instruction

rfmsanz-ethan · 5 months ago

Hi @josh-argyle

Anthropic has indicated that this will be fixed in the next release. In the meantime, you'll need to downgrade to 2.1.14 and disable autoupdates (or set update channel to stable) until the fix is released (presumably in 2.1.17).

josh-argyle · 5 months ago
Hi @josh-argyle Anthropic has indicated that this will be fixed in the next release. In the meantime, you'll need to downgrade to 2.1.14 and disable autoupdates (or set update channel to stable) until the fix is released (presumably in 2.1.17).

Thank you, it looks like I am unable to. I have had issues with API requests hanging for 20+ minutes lately, and yesterday did a fresh install. I have nothing to roll back to, and running the commands to install an older version seem to use 2.1.16 anyway ... :(

io@vbox:~/WebstormProjects/specifire_pug_2$ curl -fsSL https://claude.ai/install.sh | bash -s 2.0.3
Setting up Claude Code...
Bun v1.3.6 (d530ed99) Linux x64 (baseline)
Linux Kernel v6.1.0 | glibc v2.36
CPU: sse42 popcnt
Args: "/home/io/.claude/downloads/claude-2.1.16-linux-x64" "install" "2.0.3"

rfmsanz-ethan · 5 months ago

@josh-argyle Can you try this:

rm -rf ~/.local/bin/claude ~/.local/share/claude
rm -rf ~/.bun
rm -rf "$HOME/Library/Application Support/reflex/bun"
curl -fsSL https://claude.ai/install.sh -o /tmp/install.sh
bash /tmp/install.sh 2.1.14
josh-argyle · 5 months ago

@rfmsanz-ethan You legend! That got it running, thank you heaps :)) I don't know my way around Linux too well, did that clear the Bun cache?

rfmsanz-ethan · 5 months ago

@josh-argyle Good to hear! It removes Bun entirely. Before 2.1.15, Claude Code used Node.js instead of Bun as the runtime.

josh-argyle · 5 months ago

@rfmsanz-ethan Ahh I see. I haven't used Bun, but I'm working on something that it might be a good use-case for right now. Thank you for helping me out :) have a great Friday!

rfmsanz-ethan · 5 months ago
rfmsanz-ethan · 5 months ago

@ant-kurt I can confirm that 2.1.17 resolved the issue for me on Windows ARM64, and Mac M4.

kvas-it · 5 months ago

For me upgrading to 2.1.17 leads to "Illegal instruction: 4" when I start Claude Code. MacOS (14.4.1) installed with brew.
2.1.15 installed via brew worked.

Update: this was probably my error. I fixed it with uninstalling and installing with arch -arm64 brew install --cask claude-code

rfmsanz-ethan · 5 months ago

@delcotec This has been fixed in the already released 2.1.17

loglux · 5 months ago
For me upgrading to 2.1.17 leads to "Illegal instruction: 4" when I start Claude Code. MacOS (14.4.1) installed with brew. 2.1.15 installed via brew worked.

It looks like your system is still picking up the old AVX‑dependent build, not the updated 2.1.17 binary. The latest release no longer includes AVX instructions, so you shouldn’t be seeing this.

Not sure if it helps, but it’s worth checking that Homebrew actually pulled the new artifact and isn’t using a cached one:

brew update
brew upgrade claude-code
brew cleanup
which claude-code
claude-code --version
Jarred-Sumner · 5 months ago

This was a bug in JavaScriptCore that was fixed in https://github.com/WebKit/WebKit/pull/57026. We are aiming to release Bun v1.3.7 tomorrow with the fix for this issue.

In the meantime, please upgrade to 2.1.17 which has the previous version of Bun.

ant-kurt collaborator · 5 months ago

Closing this issue since 2.1.17 resolves

github-actions[bot] · 5 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.