Koenkk / Koenkk/zigbee2mqtt

Z2M 2.13.0 crashes on Raspberry Pi 5 (16K page kernel) with exit code 139 (SIGSEGV)

Open
#32,735 2 comments 0 reactions 0 assignees View on GitHub

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

  1. Running Home Assistant OS 18.2 on Raspberry Pi 5 (board: rpi5-64)
  2. Default RPi5 kernel uses 16K page size (getconf PAGE_SIZE = 16384)
  3. Install or update to Z2M 2.13.0-1
  4. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.