[BUG] Claude Code 2.1.217 crashes with General Protection Fault on VirtualBox (Kubuntu 26.04)

Status Open
Reported on v2.1.217
Maintainer reply None cached
Activity 4 comments · opened Jul 22, 2026

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 2.1.217 crashes immediately with a segmentation fault / general protection fault on VirtualBox running Kubuntu 26.04 minimal. Version 2.1.217 worked correctly in the same environment.
Environment:
Host: VirtualBox VM
Guest OS: Ubuntu Server LTS 26.04 minimal
Installed claude yesterday, did all the coding i needed, everthing worked fine.
saved the session id, normal shutdown , started to resume today and got the crash.

Kernel 7.0.0-27-generic #28-Ubuntu SMP PREEMPT_DYNAMIC Sun Jun 21 01:01:36 UTC 2026 x86_64 GNU/Linux
Got kernel 7.0.0-28, same problem.

I also moved out the .claude folder to start clean, same crash.

Yesterday commands used to start and go coding.
curl -fsSL https://claude.ai/install.sh | bash
mkdir claude
cd claude/
claude

Today all crash..
claude --resume 7cffafs -f2sd-4f75-a10f-ffas61bfasd
claude --resume
claude --version
claude --continue
claude
claude --help

CPU info:
vendor_id : AuthenticAMD
cpu family : 25
model : 97
model name : AMD Ryzen 5 7600X 6-Core Processor
stepping : 2
microcode : 0xa60120c
cpu MHz : 4294.964
cache size : 1024 KB
physical id : 0
siblings : 4
core id : 3
cpu cores : 4
apicid : 3
initial apicid : 3
fpu : yes
fpu_exception : yes
cpuid level : 16
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm cr8_legacy abm sse4a misalignsse 3dnowprefetch ibpb vmmcall fsgsbase bmi1 avx2 bmi2 invpcid rdseed adx clflushopt sha_ni arat nrip_save flushbyasid decodeassists flush_l1d
bugs : fxsave_leak sysret_ss_attrs null_seg spectre_v1 spectre_v2 srso ibpb_no_ret spectre_v2_user tsa
bogomips : 8589.92
TLB size : 3584 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 48 bits physical, 48 bits virtual
power management:

What Should Happen?

Claude Code launches normally

Error Messages/Logs

[   29.295773] traps: claude[2144] general protection fault ip:30497b0 sp:7ffd4666fea0 error:0 in 2.1.217[2e487b0,1b30000+371f000]
[  366.954383] traps: claude[2488] general protection fault ip:30497b0 sp:7ffe5d8afbe0 error:0 in 2.1.217[2e487b0,1b30000+371f000]
[  407.766764] traps: claude[2549] general protection fault ip:30497b0 sp:7ffdc62917f0 error:0 in 2.1.217[2e487b0,1b30000+371f000]
[  415.938934] traps: claude[2580] general protection fault ip:30497b0 sp:7ffd2e975ea0 error:0 in 2.1.217[2e487b0,1b30000+371f000]
[  424.086378] traps: claude[2593] general protection fault ip:30497b0 sp:7ffc84dee420 error:0 in 2.1.217[2e487b0,1b30000+371f000]

and on new clone test machine. separate master, so exacly same. 

[Wed Jul 22 20:14:55 2026] claude[2151]: segfault at 180 ip 0000000000000180 sp 00007ffe5898bfe8 error 14 likely on CPU 0 (core 0, socket 0)
[Wed Jul 22 20:14:55 2026] Code: Unable to access opcode bytes at 0x156.

Steps to Reproduce

I have 1 master VM, the one i cloned to start yesterday was fresh, clean ubuntu installed with minimal packages.
on that one i did :

curl -fsSL https://claude.ai/install.sh | bash
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc
mkdir claude
cd claude/
claude

Today all crash..
claude --resume 7cffafs -f2sd-4f75-a10f-ffas61bfasd
claude --resume
claude --version
claude --continue
claude
claude --help

So, i got me a new clone, updated it, rebooted, so exacly same as the one yesterday started.
curl -fsSL https://claude.ai/install.sh | bash
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc
mkdir claude
cd claude/
claude

Now it works, closed claude a few times and started verytime again perfectly.
Shutdown system, start again and..
[Wed Jul 22 20:14:55 2026] claude[2151]: segfault at 180 ip 0000000000000180 sp 00007ffe5898bfe8 error 14 likely on CPU 0 (core 0, socket 0)
[Wed Jul 22 20:14:55 2026] Code: Unable to access opcode bytes at 0x156.

i do wonder why i see this error message, as its different on the other server, while its a clone.
only different part here is, i didnt finish the setup.
installed it, it started, CTRL-C to quit it, and repeated that few times.

Virtual box info :
[ 10.577760] vboxguest: host-version: 7.2.6r172322 0x8000000f
[ 10.578104] vbg_heartbeat_init: Setting up heartbeat to trigger every 2000 milliseconds
[ 10.578166] input: VirtualBox mouse integration as /devices/pci0000:00/0000:00:04.0/input/input16
[ 10.591880] 20:14:43.606853 main VBoxService 7.2.6 r172322 (verbosity: 0) linux.amd64 (Jan 15 2026 17:07:07) release log
20:14:43.60685
[ 10.592058] 20:14:43.607333 main OS Product: Linux
[ 10.592249] 20:14:43.607492 main OS Release: 7.0.0-28-generic
[ 10.592588] 20:14:43.607682 main OS Version: #28-Ubuntu SMP PREEMPT_DYNAMIC Sun Jun 21 01:01:36 UTC 2026
[ 10.593033] 20:14:43.608021 main Executable: /opt/VBoxGuestAdditions-7.2.6/sbin/VBoxService
20:14:43.608021 main Process ID: 1814
2
[ 10.593840] 20:14:43.609035 main 7.2.6 r172322 started. Verbose level = 0
[ 10.594785] 20:14:43.609846 main vbglR3GuestCtrlDetectPeekGetCancelSupport: Supported (#1)
[ 10.595619] 20:14:43.610462 main VBoxClient 7.2.6 r172322 (verbosity: 0) linux.amd64 (Jan 15 2026 17:07:10) release log
20:14:43.610464
[ 10.595831] 20:14:43.611071 main OS Product: Linux
[ 10.596067] 20:14:43.611269 main OS Release: 7.0.0-28-generic
[ 10.596487] 20:14:43.611507 main OS Version: #28-Ubuntu SMP PREEMPT_DYNAMIC Sun Jun 21 01:01:36 UTC 2026
[ 10.597046] 20:14:43.611921 main Executable: /opt/VBoxGuestAdditions-7.2.6/bin/VBoxDRMClient
20:14:43.611921 main Process ID: 1818

Claude Model

Sonnet (default)

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.217

Platform

Anthropic API

Operating System

Ubuntu/Debian Linux

Terminal/Shell

Other

Additional Information

Also tried other terminal. xterm, same crash, terminal is unrelated imo.

A few similar bug reports are also here all #67453 #60214

View original on GitHub ↗

3 Comments

thctlo · 1 month ago

To be added.
On the original system, i made a new user. ran the claude installer again.
and its working.
switch to original user, not working.
So, to continue my work, i ask claude to scan the old user folder and import everything in the new test user.
This worked 💯%, costed a few tokens.. :-(
After i run my work, i'll shutdown the system again and start it up again and check if its still working.

And meanwhile, claude desktop on the host system never stopped working. (for months now).

#updated.
powered off.
original user, still crash.
test user, on same system, that did work, so i have hope for tomorrow session, but its a strange bug.

thctlo · 1 month ago

so started the vm again today, original user still crash, tested the 2.1.216 and 217 version.
test user, which downloaded claude 1 day later still working. so thats good.
i did notice 1 difference.
not working binary : 268573680 Jul 21 22:02 .local/share/claude/versions/2.1.217
working binary : 263197264 Jul 22 20:46 .local/share/claude/versions/2.1.217

so, i copied the working binary over the not working, tested it and its all working.
im only wondering, how can these binary have the same version and differ in size.

maxyurei · 1 month ago

Confirming this is still present in 2.1.219, with the same faulting instruction pointer as the original report — and on a different CPU vendor but the same guest kernel.

traps: claude[4333] general protection fault ip:30497b0 sp:7ffc4b0c7dd0 error:0 in 2.1.219[2e487b0,1b30000+371f000]

The ip, code start, mapping base and mapping size are all byte-identical to the 2.1.217 trace in the original report (ip:30497b0 ... [2e487b0,1b30000+371f000]), so it did not move between .217 and .219.

Environment

  • Host: Windows 11 25H2
  • VirtualBox 7.2.6 r172322
  • Guest: Ubuntu 26.04 LTS, kernel 7.0.0-27-generic
  • Guest CPU: 12th Gen Intel(R) Core(TM) i7-1260P
  • VM config: 2 vCPU, 4096 MB, Nested Paging + PAE/NX enabled, KVM paravirtualization, VMSVGA

The guest kernel matches the original report exactly (7.0.0-27-generic, Ubuntu 26.04 LTS), but the CPU does not — this is Intel Alder Lake, the original was an AMD Ryzen 5 7600X, and #60214 was an Intel i9-13950HX. Three reports, both vendors, so the guest kernel/userland looks like a better correlate than the CPU here.

AVX is present in the guest, so this does not look like the non-AVX baseline crash (#20611, #24562) — there is no CPU lacks AVX support banner, and the signal is SIGSEGV rather than SIGILL:

$ grep -om1 -E 'avx2|avx|sse4_2' /proc/cpuinfo
sse4_2
avx
avx2

Every subcommand crashes, including claude --version and claude --help. Removing ~/.claude made no difference.

strace shows the fault happens before Claude Code makes any meaningful syscall. The trace covers only glibc/loader startup — library mmaps, arch_prctl(ARCH_SET_FS), set_tid_address, set_robust_list, rseq, the RELRO mprotect calls, prlimit64, getrandom(8, GRND_NONBLOCK), the loader's munmap, two futex(FUTEX_WAKE_PRIVATE) — and then:

--- SIGSEGV {si_signo=SIGSEGV, si_code=SI_KERNEL, si_addr=NULL} ---
+++ killed by SIGSEGV (core dumped) +++

No config file is opened, no socket, nothing project-related. si_code=SI_KERNEL with si_addr=NULL (rather than SEGV_MAPERR with a real fault address) is consistent with the general protection fault in dmesg — the CPU refused an instruction outright rather than touching an unmapped page.

Speculative, but given the CPUID feature bits are advertised and it still #GPs, extended processor state (XSAVE/XCR0) handling in the hypervisor seems a more likely suspect than the feature bits themselves.

Only 2.1.219 exists in ~/.local/share/claude/versions/, so the symlink rollback from #60214 isn't available on a fresh install — downgrading requires re-running the installer with an explicit version.

Showing cached comments. Read the full discussion on GitHub ↗