[BUG] SIGILL crash on Intel Atom D525 when processing image paths - sharp-libvips requires unsupported CPU instructions

Resolved 💬 3 comments Opened Dec 22, 2025 by paul43210 Closed Dec 25, 2025

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 SIGILL (Illegal Instruction) when an image file path is pasted into the prompt. The crash occurs in the sharp-libvips-linux-x64 library, which is compiled with CPU instructions (likely SSE4.x or AVX2) that are not supported by older CPUs like the Intel Atom D525.
The application crashes immediately with no error message or graceful degradation - just a core dump.

Related issues:
#6143 - Illegal instruction error when reading images on AMD A6-3420M processor (similar root cause, different CPU)
#10408 - Claude Code v2.0.27 fails with SIGILL on Intel Mac without AVX2 support
#5864 - illegal hardware instruction, please compile without the AVX2 requirement

What Should Happen?

Claude Code should either:

Gracefully fail with a user-friendly error message explaining that image processing is not supported on this CPU
Fall back to a compatible image processing method (e.g., sharp-wasm32 or software-only processing)
At minimum, not crash - detect incompatible CPU at startup and disable image features

Error Messages/Logs

Terminal output:
Illegal instruction

strace output (key excerpts):
newfstatat(AT_FDCWD, "/usr/local/lib/node_modules/@anthropic-ai/claude-code/node_modules/@img/sharp-linux-x64/lib/../../../../../@img-sharp-libvips-linux-x64-npm-1.0.4-0974f077b7/node_modules/@img/sharp-libvips-linux-x64/lib/", 0x7fffa78cca60, 0) = -1 ENOENT (No such file or directory)
...
--- SIGILL {si_signo=SIGILL, si_code=ILL_ILLOPN, si_addr=0x7604ae931593} ---
+++ killed by SIGILL +++
Illegal instruction

The crash occurs while loading the sharp image processing library's native libvips bindings.

Steps to Reproduce

Install Claude Code on a system with an older CPU lacking SSE4.x/AVX2 support (e.g., Intel Atom D525)
Run claude in terminal
Paste an image file path into the prompt, e.g.: /path/to/image.jpg
Application crashes immediately with "Illegal instruction"

Note: Claude Code functions normally for text-only operations until an image path is entered.

Claude Model

Not sure / Multiple models

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.0.69

Platform

Anthropic API

Operating System

Ubuntu/Debian Linux

Terminal/Shell

Other

Additional Information

<html>
<body>
<!--StartFragment--><h3 class="text-text-100 mt-2 -mb-1 text-base font-bold">CPU Information</h3>
<div class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg"><div class="sticky opacity-0 group-hover/copy:opacity-100 top-2 py-2 h-12 w-0 float-right"><div class="absolute right-0 h-8 px-2 items-center inline-flex z-10"><button class="inline-flex
items-center
justify-center
relative
shrink-0
can-focus
select-none
disabled:pointer-events-none
disabled:opacity-50
disabled:shadow-none
disabled:drop-shadow-none border-transparent
transition
font-base
duration-300
ease-[cubic-bezier(0.165,0.85,0.45,1)] h-8 w-8 rounded-md active:scale-95 backdrop-blur-md Button_ghost__BUAoh" type="button" aria-label="Copy to clipboard" data-state="closed"><div class="relative"><div class="flex items-center justify-center transition-all opacity-100 scale-100" style="width: 20px; height: 20px;"><svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="shrink-0 transition-all opacity-100 scale-100" aria-hidden="true"><path d="M12.5 3C13.3284 3 14 3.67157 14 4.5V6H15.5C16.3284 6 17 6.67157 17 7.5V15.5C17 16.3284 16.3284 17 15.5 17H7.5C6.67157 17 6 16.3284 6 15.5V14H4.5C3.67157 14 3 13.3284 3 12.5V4.5C3 3.67157 3.67157 3 4.5 3H12.5ZM14 12.5C14 13.3284 13.3284 14 12.5 14H7V15.5C7 15.7761 7.22386 16 7.5 16H15.5C15.7761 16 16 15.7761 16 15.5V7.5C16 7.22386 15.7761 7 15.5 7H14V12.5ZM4.5 4C4.22386 4 4 4.22386 4 4.5V12.5C4 12.7761 4.22386 13 4.5 13H12.5C12.7761 13 13 12.7761 13 12.5V4.5C13 4.22386 12.7761 4 12.5 4H4.5Z"></path></svg></div><div class="flex items-center justify-center absolute top-0 left-0 transition-all opacity-0 scale-50" style="width: 20px; height: 20px;"><svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="shrink-0 absolute top-0 left-0 transition-all opacity-0 scale-50" aria-hidden="true"><path d="M15.1883 5.10908C15.3699 4.96398 15.6346 4.96153 15.8202 5.11592C16.0056 5.27067 16.0504 5.53125 15.9403 5.73605L15.8836 5.82003L8.38354 14.8202C8.29361 14.9279 8.16242 14.9925 8.02221 14.9989C7.88203 15.0051 7.74545 14.9526 7.64622 14.8534L4.14617 11.3533L4.08172 11.2752C3.95384 11.0811 3.97542 10.817 4.14617 10.6463C4.31693 10.4755 4.58105 10.4539 4.77509 10.5818L4.85321 10.6463L7.96556 13.7586L15.1161 5.1794L15.1883 5.10908Z"></path></svg></div></div></button></div></div><div><pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed" style="background: transparent; color: rgb(56, 58, 66); font-family: var(--font-mono); direction: ltr; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; line-height: 1.5; tab-size: 2; hyphens: none; padding: 1em; margin: 0.5em 0px; overflow: auto; border-radius: 0.3em;"><code style="background: transparent; color: rgb(56, 58, 66); font-family: var(--font-mono); direction: ltr; text-align: left; white-space: pre-wrap; word-spacing: normal; word-break: normal; line-height: 1.5; tab-size: 2; hyphens: none;"><span><span>model name : Intel(R) Atom(TM) CPU D525 @ 1.80GHz
</span></span><span>flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts nopl cpuid aperfmperf pni dtes64 monitor ds_cpl tm2 ssse3 cx16 xtpr pdcm movbe lahf_lm dtherm</span></code></pre></div></div>
<h3 class="text-text-100 mt-2 -mb-1 text-base font-bold">CPU Instruction Support</h3>
<div class="overflow-x-auto w-full px-2 mb-6">
Instruction Set | Supported
-- | --
SSE/SSE2 | ✅ Yes
SSE3/SSSE3 | ✅ Yes
SSE4.1 | ❌ No
SSE4.2 | ❌ No
AVX | ❌ No
AVX2 | ❌ No

</div>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">The Intel Atom D525 (released 2010, "Pineview" architecture) only supports up to SSSE3.</p>
<h2 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold">Claude Model</h2>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">N/A - crash occurs before any API interaction</p>
<h2 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold">Is this a regression?</h2>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Unknown - first time using Claude Code on this hardware</p>
<h2 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold">Suggested Fix</h2>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">The <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">sharp</code> library supports multiple backends. Consider:</p>
<ol class="[li_&amp;]:mb-0 [li_&amp;]:mt-1.5 [li_&amp;]:gap-1.5 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-decimal flex flex-col gap-2 pl-8 mb-3">
<li class="whitespace-normal break-words pl-2"><strong>Runtime CPU detection</strong> - Check for required instruction sets at startup and disable image features gracefully if missing</li>
<li class="whitespace-normal break-words pl-2"><strong>WASM fallback</strong> - Use <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">sharp-wasm32</code> on systems without required CPU features</li>
<li class="whitespace-normal break-words pl-2"><strong>Compilation flags</strong> - Build <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">libvips</code> binaries targeting baseline x86-64 (<code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">-march=x86-64</code>) rather than modern instruction sets</li>
<li class="whitespace-normal break-words pl-2"><strong>Error handling</strong> - Wrap the sharp import in a try-catch to provide a meaningful error message instead of crashing</li>
</ol>
<h2 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold">Additional Context</h2>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">This issue affects users running Claude Code on:</p>
<ul class="[li_&amp;]:mb-0 [li_&amp;]:mt-1.5 [li_&amp;]:gap-1.5 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-2 pl-8 mb-3">
<li class="whitespace-normal break-words pl-2">Older Intel Atom processors (netbooks, NAS devices, home servers)</li>
<li class="whitespace-normal break-words pl-2">Pre-2011 AMD processors</li>
<li class="whitespace-normal break-words pl-2">Older Intel Core 2 / early Core i-series without AVX2</li>
<li class="whitespace-normal break-words pl-2">Virtualized environments that don't expose modern CPU features</li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">The workaround is to avoid pasting image paths, but this limits Claude Code's functionality on otherwise capable hardware.</p><!--EndFragment-->
</body>
</html>

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗