[BUG] "Out of memory" false positive on Raspberry Pi 5 (aarch64) since v2.1.72 — caused by numa=fake=8 kernel parameter
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?
What's wrong
The native installer fails with Out of memory on Raspberry Pi 5 (8GB RAM, aarch64) since v2.1.72. The error occurs despite ~6.7 GB being available, and --force does not bypass the check. v2.1.71 installed successfully on the same hardware.
The root cause is the Pi 5's default kernel parameter numa=fake=8, which splits 8 GB physical RAM into 8 fake NUMA nodes of ~1 GB each. The memory check introduced in v2.1.72 appears to evaluate per-node memory rather than total system memory, incorrectly flagging the system as insufficient.
✘ Installation failed
Out of memory
Try running with --force to override checks
System memory at time of failure:
MemTotal: 8252352 kB
MemAvailable: 6890544 kB
NUMA topology (fake, not real hardware):
available: 8 nodes (0-7)
node 0 size: 988 MB free: 460 MB
node 1 size: 1019 MB free: 532 MB
...all nodes share identical CPUs, uniform distance=10
What Should Happen?
What should happen
Installation succeeds. The memory check should read MemAvailable from /proc/meminfo rather than per-NUMA-node figures, or aggregate across all nodes before applying the threshold. The --force flag should bypass the check as a fallback.
Error Messages/Logs
Steps to reproduce
Use a Raspberry Pi 5 (8GB) running Raspberry Pi OS (kernel 6.12.62+rpt-rpi-2712, aarch64)
Confirm numa=fake=8 is active: cat /proc/cmdline | grep numa
Run curl -fsSL https://claude.ai/install.sh | bash
Observe Out of memory failure despite sufficient RAM
Note: numa=fake=8 is set by the official Raspberry Pi kernel and cannot be disabled without rebuilding the kernel. This affects all Pi 5 users.
Steps to Reproduce
Steps to reproduce
Use a Raspberry Pi 5 (8GB) running Raspberry Pi OS (kernel 6.12.62+rpt-rpi-2712, aarch64)
Confirm numa=fake=8 is active: cat /proc/cmdline | grep numa
Run curl -fsSL https://claude.ai/install.sh | bash
Observe Out of memory failure despite sufficient RAM
Note: numa=fake=8 is set by the official Raspberry Pi kernel and cannot be disabled without rebuilding the kernel. This affects all Pi 5 users.
Claude Model
Other
Is this a regression?
Yes, this worked in a previous version
Last Working Version
2.1.71
Claude Code Version
2.1.74 (current) — reproduced also with 2.1.72 and 2.1.73 binaries downloaded directly from GCS
Platform
Anthropic API
Operating System
Other Linux
Terminal/Shell
Other
Additional Information
OS: Raspberry Pi OS (Debian 13 Trixie), kernel 6.12.62+rpt-rpi-2712 #1 SMP PREEMPT aarch64
The Raspberry Pi 5's official kernel boots with numa=fake=8 by default (visible in /proc/cmdline). This splits 8 GB physical RAM into 8 fake NUMA nodes of ~1 GB each. All nodes share identical CPUs and have uniform inter-node distance (10), confirming this is not real NUMA hardware.
The memory check introduced in v2.1.72 appears to evaluate per-node memory rather than total system memory. The smallest node has ~460 MB free, which likely triggers the threshold. Reading MemAvailable from /proc/meminfo (6.7 GB) would correctly pass the check.
numa=fake=8 is set by the official Raspberry Pi kernel and is not user-configurable without rebuilding the kernel. This affects all Pi 5 users attempting native installation.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗