Zigbee2MQTT Failed to start ‘Bridge’ (TypeError: Cannot read properties of undefined (reading ‘deviceIeeeAddress’)

I am trying to set up my Home Assistant with Zigbee2MQTT but I am getting the following error:

[2025-06-10 12:49:16] error: z2m: Failed to start ‘Bridge’ (TypeError: Cannot read properties of undefined (reading ‘deviceIeeeAddress’)
at Bridge.publishInfo (/app/lib/extension/bridge.ts:699:69)
at Bridge.start (/app/lib/extension/bridge.ts:180:9)
at Controller.startExtension (/app/lib/controller.ts:271:13)
at Controller.start (/app/lib/controller.ts:149:13)
at start (/app/index.js:149:5))

My setup is:

  • NUC5CPYH
  • Ubuntu 14.04.6 server
  • Docker 27.5.1
  • ConBee II
$ ls -l /dev/serial/by-id
total 0
lrwxrwxrwx 1 root root 13 Jun 10 12:44 usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2699991-if00 -> ../../ttyACM0
$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 1cf1:0030 Dresden Elektronik ZigBee gateway [ConBee II]

configuration.yaml

version: 4

mqtt:
  base_topic: zigbee2mqtt
  server: "mqtt://127.0.0.1:1883"
  user: "mqttwilhelmsaue"
  password: "**************"
  keepalive: 60
  reject_unauthorized: true
  version: 4

serial:
  port: "/dev/ttyACM0"
  adapter: deconz

frontend:
  enabled: true
  port: 8080

advanced:
  channel: 20

Docker for Zigbee2MQTT

- name: Run Zigbee2MQTT Docker container
  docker_container:
    name: zigbee2mqtt
    image: koenkk/zigbee2mqtt
    restart_policy: unless-stopped
    state: started
    pull: true
    network_mode: host
    privileged: true
    volumes:
      - /opt/zigbee2mqtt/data:/app/data
      - /etc/localtime:/etc/localtime:ro
    devices:
      - "{{ zigbee_device }}:{{ zigbee_device }}"
    env:
      NODE_ENV: production
  tags: zigbee2mqtt

zigbee_device above is: /dev/ttyACM0:/dev/ttyACM0

Logs:

Using '/app/data' as data directory
Starting Zigbee2MQTT without watchdog.
[2025-06-10 12:49:15] info: 	z2m: Logging to console, file (filename: log.log)
[2025-06-10 12:49:15] info: 	z2m: Starting Zigbee2MQTT version 2.4.0 (commit #bdb94da46e0461337f4a61b4f2a6bfa5172f608f
)
[2025-06-10 12:49:15] info: 	z2m: Starting zigbee-herdsman (4.1.0)
[2025-06-10 12:49:15] info: 	z2m: zigbee-herdsman started (resumed)
[2025-06-10 12:49:15] info: 	z2m: Coordinator firmware version: '{"meta":{"maintrel":0,"majorrel":38,"minorrel":120,"product":0,"revision":"0x26780700","transportrev":0},"type":"ConBee2/RaspBee2"}'
[2025-06-10 12:49:15] info: 	z2m: Currently 0 devices are joined.
[2025-06-10 12:49:15] info: 	z2m: Connecting to MQTT server at mqtt://127.0.0.1:1883
[2025-06-10 12:49:16] info: 	z2m: Connected to MQTT server
[2025-06-10 12:49:16] info: 	z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/bridge/state', payload '{"state":"online"}'
[2025-06-10 12:49:16] error: 	z2m: Failed to start 'Bridge' (TypeError: Cannot read properties of undefined (reading 'deviceIeeeAddress')
    at Bridge.publishInfo (/app/lib/extension/bridge.ts:699:69)
    at Bridge.start (/app/lib/extension/bridge.ts:180:9)
    at Controller.startExtension (/app/lib/controller.ts:271:13)
    at Controller.start (/app/lib/controller.ts:149:13)
    at start (/app/index.js:149:5))
[2025-06-10 12:49:16] info: 	z2m: Started frontend on port 8080
[2025-06-10 12:49:16] info: 	z2m: Zigbee2MQTT started!
[2025-06-10 12:49:18] info: 	z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/bridge/state', payload '{"state":"online"}'

I tried following all the applicable ‘possible issues’ described here:

But no success…

- name: Remove modemmanager package completely
  ansible.builtin.apt:
    name: modemmanager
    state: absent
    purge: yes

- name: Add user to required groups
  user:
    name: "{{ ansible_user }}"
    groups: uucp,tty,dialout
    append: yes

- name: Create temporary directory
  tempfile:
    state: directory
    suffix: udev
  register: temp_dir

- name: Download libudev1 package
  get_url:
    url: https://snapshot.debian.org/archive/debian/20220829T032859Z/pool/main/s/systemd/libudev1_247.3-7+deb11u1_amd64.deb
    dest: "{{ temp_dir.path }}/libudev1_247.3-7+deb11u1_amd64.deb"

- name: Download libudev-dev package
  get_url:
    url: https://snapshot.debian.org/archive/debian/20220829T032859Z/pool/main/s/systemd/libudev-dev_247.3-7+deb11u1_amd64.deb
    dest: "{{ temp_dir.path }}/libudev-dev_247.3-7+deb11u1_amd64.deb"

- name: Download udev package
  get_url:
    url: https://snapshot.debian.org/archive/debian/20220829T032859Z/pool/main/s/systemd/udev_247.3-7+deb11u1_amd64.deb
    dest: "{{ temp_dir.path }}/udev_247.3-7+deb11u1_amd64.deb"

- name: Install libudev1 from .deb (force downgrade)
  apt:
    deb: "{{ temp_dir.path }}/libudev1_247.3-7+deb11u1_amd64.deb"
    force: yes

- name: Install libudev-dev from .deb (force downgrade)
  apt:
    deb: "{{ temp_dir.path }}/libudev-dev_247.3-7+deb11u1_amd64.deb"
    force: yes

- name: Install udev from .deb (force downgrade)
  apt:
    deb: "{{ temp_dir.path }}/udev_247.3-7+deb11u1_amd64.deb"
    force: yes

- name: Hold some packages
  ansible.builtin.dpkg_selections:
    name: "{{ item }}"
    selection: hold
  loop:
      - udev
      - libudev1
      - libudev-dev

Hello hassist2,

You may be using an old Z2M config setup. This changed last October…

Research or this might help:
Z2m 2 config change

1 Like