Z2M 2.13.0 crashes on Raspberry Pi 5 (16K page kernel) with exit code 139 (SIGSEGV)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 15.7k
- Forks
- 2k
- Avg merge
- 18h 55m
- Merged PRs (30d)
- 35
Description
Description
Z2M 2.13.0-1 crashes immediately on startup on Raspberry Pi 5 running Home Assistant OS with the default 16K page kernel (rpi5-64 board). The container exits with code 139 (SIGSEGV) before any Z2M log output is produced.
The previous version 2.12.1-1 works correctly on the same system.
Steps to Reproduce
- Running Home Assistant OS 18.2 on Raspberry Pi 5 (board:
rpi5-64) - Default RPi5 kernel uses 16K page size (
getconf PAGE_SIZE= 16384) - Install or update to Z2M 2.13.0-1
- Z2M fails to start
Observed Behavior
Container exits immediately with code 139 (SIGSEGV). No Z2M application log output is produced — only the addon wrapper messages:
Starting Zigbee2MQTT...
Socat not enabled
Preparing to start...
Then crash. Repeats indefinitely.
Root Cause (suspected)
Z2M 2.13.0 bumped the base image from alpine:3.23 to alpine:3.24. Alpine 3.24 ships a different Node.js 22.x build that appears to be incompatible with the RPi5's default 16K page kernel on arm64. The crash occurs at the native code level before any JS executes.
Workaround
Pull the 2.12.1-1 image and retag it as 2.13.0-1:
docker pull ghcr.io/zigbee2mqtt/zigbee2mqtt-aarch64:2.12.1-1
docker tag ghcr.io/zigbee2mqtt/zigbee2mqtt-aarch64:2.12.1-1 ghcr.io/zigbee2mqtt/zigbee2mqtt-aarch64:2.13.0-1
Environment
- Board: Raspberry Pi 5 (rpi5-64)
- HAOS: 18.2
- Z2M version: 2.13.0-1 (broken) / 2.12.1-1 (working)
- Kernel page size: 16384 (16K)
- Arch: aarch64
- Serial adapter: ember
- Docker: 29.6.2
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Compare the 2.12.1-1 and 2.13.0-1 container definitions, focusing on the Alpine and Node.js base-image change described in the issue. Reproduce on a Raspberry Pi 5 with the 16K page kernel and confirm the image starts without exit code 139 or missing startup logs; check the working 2.12.1-1 image as the baseline.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, node.js, raspberry-pi
- Domain
- infrastructure, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100