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.
33 Comments
Found 1 possible duplicate issue:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
+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.
This is a ARM64 (not x64) CPU via VM hypervisor.
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.
Same issue and error message as ericlevy on macOS.
CPU is a M1 Pro.
Using 2.1.14 binary works.
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.
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
+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.
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.
Fix
Technical Details:
Why This Happens in VMs:
qemu64orkvm64only expose baseline x86-64 instructions-cpu host)SandyBridge,Haswell, or newer)Resolution / Workaround
For Proxmox/QEMU users:
qm set <vmid> -cpu hostFor other hypervisors:
Verified Working: After changing the CPU type to
host, Claude Code 2.1.15 launches successfully.Check AVX availability:
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).
I tried to use Claude via bun by running:
@tunv777 this works!
After a lot of debugging, I fixed this on my m4 mac:
Claude Code ARM64 Fix (Apple Silicon)
Try this first:
If still failing, clean everything and retry:
If
uname -mshowsx86_64, your shell is running under Rosetta. Fix it:For fish - edit
~/.config/fish/config.fishand remove lines containing:/usr/local/bin(Intel Homebrew)reflex/bunThen switch to ARM64 fish:
For zsh - edit
~/.zshrcand remove same paths, then:Restart terminal, verify
uname -mshowsarm64, then run the install.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
Step 2: Check the symlink
Step 3: List available versions
Output example:
Step 4: Switch to working version (2.1.14)
Step 5: Verify
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:
DISABLE_AUTOUPDATER=1in settings.json, for the time being)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 faultI 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
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.3Setting 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"
@josh-argyle Can you try this:
@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?
@josh-argyle Good to hear! It removes Bun entirely. Before 2.1.15, Claude Code used Node.js instead of Bun as the runtime.
@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!
2.1.17 Released:
https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2117
Thank you @ant-kurt
@ant-kurt I can confirm that 2.1.17 resolved the issue for me on Windows ARM64, and Mac M4.
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@delcotec This has been fixed in the already released 2.1.17
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:
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.
Closing this issue since 2.1.17 resolves
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.