Sonoff Dongle-M Zig2MQTT CRC error

Hi Folks

Zig2mqtt fails to start. Logs tell me there is a CRC error…Seeing these errors. I’ve got 2 HAOS instances with 2 dongles, I am seeing the error on both systems so its not a faulty dongle. Not sure if the latest zig2mqtt broke things, there is nothing else I can seem to do to get any more information to fix this… Any ideas ? Remember I am on ethernet, not USB and YES it was working perfectly. I did try and get matter working but had too many issues and I removed all of the integrations and I’m positive it was working after that…

[2026-02-14 17:43:54] e[32minfoe[39m: z2m: Logging to console, file (filename: log.log)
[2026-02-14 17:43:54] e[32minfoe[39m: z2m: Starting Zigbee2MQTT version 2.8.0 (commit #unknown)
[2026-02-14 17:43:54] e[32minfoe[39m: z2m: Starting zigbee-herdsman (9.0.2)
[2026-02-14 17:43:54] e[32minfoe[39m: zh:ember: Using default stack config.
[2026-02-14 17:43:54] e[32minfoe[39m: zh:ember: ======== Ember Adapter Starting ========
[2026-02-14 17:43:54] e[32minfoe[39m: zh:ember:ezsp: ======== EZSP starting ========
[2026-02-14 17:43:54] e[32minfoe[39m: zh:ember:uart:ash: ======== ASH Adapter reset ========
[2026-02-14 17:43:54] e[32minfoe[39m: zh:ember:uart:ash: Socket ready
[2026-02-14 17:43:54] e[32minfoe[39m: zh:ember:uart:ash: ======== ASH starting ========
[2026-02-14 17:43:56] e[31merrore[39m: zh:ember:uart:ash: Received frame with CRC error
[2026-02-14 17:43:59] e[32minfoe[39m: zh:ember:uart:ash: ======== ASH Adapter reset ========
[2026-02-14 17:43:59] e[32minfoe[39m: zh:ember:uart:ash: ======== ASH starting ========
[2026-02-14 17:44:04] e[32minfoe[39m: zh:ember:uart:ash: ======== ASH Adapter reset ========
[2026-02-14 17:44:04] e[32minfoe[39m: zh:ember:uart:ash: ======== ASH starting ========
[2026-02-14 17:44:09] e[32minfoe[39m: zh:ember:uart:ash: ======== ASH Adapter reset ========
[2026-02-14 17:44:09] e[32minfoe[39m: zh:ember:uart:ash: ======== ASH starting ========
[2026-02-14 17:44:14] e[32minfoe[39m: zh:ember:uart:ash: ======== ASH Adapter reset ========
[2026-02-14 17:44:14] e[32minfoe[39m: zh:ember:uart:ash: ======== ASH starting ========
[2026-02-14 17:44:19] e[31merrore[39m: z2m: Error while starting zigbee-herdsman
[2026-02-14 17:44:19] e[31merrore[39m: z2m: Failed to start zigbee-herdsman

[2026-02-14 17:42:58] e[32minfoe[39m: z2m: Logging to console, file (filename: log.log)
[2026-02-14 17:42:58] e[32minfoe[39m: z2m: Starting Zigbee2MQTT version 2.8.0 (commit #unknown)
[2026-02-14 17:42:58] e[32minfoe[39m: z2m: Starting zigbee-herdsman (9.0.2)
[2026-02-14 17:42:58] e[32minfoe[39m: zh:ember: Using default stack config.
[2026-02-14 17:42:58] e[32minfoe[39m: zh:ember: ======== Ember Adapter Starting ========
[2026-02-14 17:42:58] e[32minfoe[39m: zh:ember:ezsp: ======== EZSP starting ========
[2026-02-14 17:42:58] e[32minfoe[39m: zh:ember:uart:ash: ======== ASH Adapter reset ========
[2026-02-14 17:42:58] e[32minfoe[39m: zh:ember:uart:ash: Socket ready
[2026-02-14 17:42:58] e[32minfoe[39m: zh:ember:uart:ash: ======== ASH starting ========
[2026-02-14 17:43:03] e[32minfoe[39m: zh:ember:uart:ash: ======== ASH Adapter reset ========
[2026-02-14 17:43:03] e[32minfoe[39m: zh:ember:uart:ash: ======== ASH starting ========
[2026-02-14 17:43:08] e[32minfoe[39m: zh:ember:uart:ash: ======== ASH Adapter reset ========
[2026-02-14 17:43:08] e[32minfoe[39m: zh:ember:uart:ash: ======== ASH starting ========
[2026-02-14 17:43:13] e[32minfoe[39m: zh:ember:uart:ash: ======== ASH Adapter reset ========
[2026-02-14 17:43:13] e[32minfoe[39m: zh:ember:uart:ash: ======== ASH starting ========
[2026-02-14 17:43:18] e[32minfoe[39m: zh:ember:uart:ash: ======== ASH Adapter reset ========
[2026-02-14 17:43:18] e[32minfoe[39m: zh:ember:uart:ash: ======== ASH starting ========
[2026-02-14 17:43:23] e[31merrore[39m: z2m: Error while starting zigbee-herdsman
[2026-02-14 17:43:23] e[31merrore[39m: z2m: Failed to start zigbee-herdsman

[2026-02-14 17:42:28] e[32minfoe[39m: z2m: Logging to console, file (filename: log.log)
[2026-02-14 17:42:28] e[32minfoe[39m: z2m: Starting Zigbee2MQTT version 2.8.0 (commit #unknown)
[2026-02-14 17:42:28] e[32minfoe[39m: z2m: Starting zigbee-herdsman (9.0.2)
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember: Using default stack config.
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember: ======== Ember Adapter Starting ========
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember:ezsp: ======== EZSP starting ========
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember:uart:ash: ======== ASH Adapter reset ========
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember:uart:ash: ASH COUNTERS since last clear:
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember:uart:ash: Total frames: RX=0, TX=0
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember:uart:ash: Cancelled : RX=0, TX=0
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember:uart:ash: DATA frames : RX=0, TX=0
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember:uart:ash: DATA bytes : RX=0, TX=0
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember:uart:ash: Retry frames: RX=0, TX=0
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember:uart:ash: ACK frames : RX=0, TX=0
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember:uart:ash: NAK frames : RX=0, TX=0
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember:uart:ash: nRdy frames : RX=0, TX=0
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember:uart:ash: CRC errors : RX=0
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember:uart:ash: Comm errors : RX=0
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember:uart:ash: Length < minimum: RX=0
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember:uart:ash: Length > maximum: RX=0
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember:uart:ash: Bad controls : RX=0
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember:uart:ash: Bad lengths : RX=0
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember:uart:ash: Bad ACK numbers : RX=0
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember:uart:ash: Out of buffers : RX=0
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember:uart:ash: Retry dupes : RX=0
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember:uart:ash: Out of sequence : RX=0
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember:uart:ash: ACK timeouts : RX=0
[2026-02-14 17:42:28] e[32minfoe[39m: zh:ember:uart:ash: ======== ASH stopped ========
[2026-02-14 17:42:28] e[31merrore[39m: zh:ember:uart:ash: Failed to init port with error Error: connect ECONNREFUSED 10.1.80.8:6638
1 Like

CRC Error with what? Any related log entries? Communication errors? Network connectivity? Faulty wiring?

[Can you please use </> formatting if posting code and logs]

What I’ve posted is straight out of the zig2mqtt logs. Which logs were you specifically referring to ? With reference to CRC error with what, that is exactly my question, if i could see nmmore I could better identify what the problem is. What I’ve posted is exactly what i get., As I posted the device is on ethernet, it connects fine via a web browser, I can see in the device that zig2mqtt connects and then disconnects. Faulty wiring, what in particular do you thik is faulty in the wiring. Please read my post thoroughly owever if its not thorough

  1. Dongle -M is connected via ethernet
  2. Dongle is accessible via web interface and on same vlan, no change
  3. The CRC error I’ve posted about is all i see. If there is suggestion of “whats in the logs”, be more specific where i should look. I’ve looked in the zig2mqtt logs
  4. I’ve got this fault on 2 identical equipment. I have a dev setup and its exhibiting the exact same crc error.
  5. Possibly related to a zig2mqtt version upgrade, not sure.
  6. If MATTER server (which I’ve removed) has left artifacts that are causing issues, I’m not sure how i can determine this.
  7. The zig2mqtt configuration is as per the embedded information found in the dongle web pages
  8. It was working perfectly, there was a software change that caused this to fault however I am not sure at what version of zig2mqtt it stopped

Hope that provides clarity…

I have 3 dongle-M’s that started doing the exact same thing on Saturday. Been running fine without any issues since November. Absolutely not a switch or cabling issue. No port errors the switch. Haven’t been around to make any changes.

Good to know Steve…I didnt save the old version in a backup so I’m a little bit stuffed…

I’ve tracked this down to Zigbee2MQTT corrupting the NVRAM on the Dongle-MAX. The fix is as follows:

  1. Log into your Z2M Instance and rename the coordinator backup file (i.e. mv /opt/zigbee2mqtt/data/coordinator_backup.json /opt/zigbee2mqtt/data/coordinator_backup.json.bak)
  2. Stop Zigbee2MQTT
  3. Log into the WebUI of your Max, and go Firmware → EFR32MG24
  4. Click Check for Updates
  5. Just click the Flash Firmware V1.0.0
  6. Wait for it to complete… Then wait another couple minutes for the controller to restart.
  7. Restart Zigbee2MQTT

That should get you going. I’ve reported the issue on GitHub.

Hi Steve

Thankyou, i see you’ve posted in GitHub. I thought it might have corrupted the firmware, I changed the dongle to Matter and then switched it back to Zigbee (it reloaded the firmware) when i was trying to debug, clearly i had no idea i had to rename the json file, I’ve learnt something. I’ll give it a go tonight…appreciate you logging it in GitHub…

1 Like

Hi Steve

I found the file in homeassistant and changed it to .bak, re-flashed the dongle and i still get that initial crc error…

Bugger…

Ran into the same problem today. Having connectivity issues with a new Zigbee thermostat, I decided to update the firmware to version 1.0.7. It was a mistake :man_facepalming:

[2026-02-21 21:31:44] error: zh:ember:uart:ash: Received frame with CRC error
[2026-02-21 21:31:54] error: z2m: Not connected to MQTT server!
[2026-02-21 21:31:54] error: z2m: Cannot send message: topic: ‘zigbee2mqtt_poe/bridge/state’, payload: ‘{state:offline}’

Rolling back to version 1.0.5 solved the problem. Thanks to ChatGPT — it helped on the third attempt, but helped :laughing: It found this thread and one on Reddit. God bless AI :joy:

So does this mean there might be an issue with Dongle-Max firmware version 1.0.7?

It’s a bit confusing because I’m also running version 1.0.7 on my Dongle-Max and I haven’t experienced this behavior.

Maybe it would be worth reporting this to the Dongle-Max team for clarification. According to their release notes, version 1.0.7 includes fixes for some key performance issues compared to 1.0.5.

I just bought a Dongle-M and connected it to a USW Flex 2.5 PoE. I migrated ZHA from Dongle-P to Dongle-M. Everything was working fine.

I saw an update from for the dongle ESP32 to 1.0.7. After that, everything stopped working. I can ping from HAOS to Dongle-M, and the port is available when I check with the netcat nc -vz HOST PORT command. Auto-discovery even works, but I can’t connect ZHA to Dongle-M. I’ll be rolling back the version today.

Are there any related errors in the ZHA logs?
And can you access the Dongle-M Web UI normally?

My Dongle still shows version 1.0.0, not sure where you are getting the update from, can you share please ? All of my Dongle-Ms are not working, i still get the CRC error on it trying to establish a connection…

Dongle-M can be updated directly through its web UI.

You can also update it via Sonoff’s online firmware update platform:

Upgrading the ESP32-D0WDR2-V3 firmware to V1.0.7 broke Zigbee2MQTT over PoE Ethernet on my Sonoff Dongle M.

After upgrading, Zigbee2MQTT failed immediately after the initial handshake with these errors:

zh:ember:uart:ash: Received frame with CRC error
z2m: Error: Failed to start EZSP layer with status=HOST_FATAL_ERROR

The same dongle still worked when I switched from Ethernet/serial to direct USB, so the Zigbee coordinator itself and the MG24 firmware were fine. The issue only affected the Ethernet/PoE path.

Downgrading the ESP32 firmware to V1.0.5 fixed it and Zigbee2MQTT started normally again.

Thanks for the feedback. I also downgraded to 1.0.5 and it started working and then i upgraded back to 1.0.7 (all on Ethernet). It now works again…

Thank you for the thread here! I thought this will be a long saturday :smiley:
Flashed back to 1.0.5 and it worked flawlessly. :slight_smile:

As a quick update, while V1.0.5 got it back to work, I’m now seeing occasional errors:

zh:ember:uart:ash: Port Error: read ETIMEDOUT
zh:ember:ezsp: Fatal error, status=ERROR_SERIAL_INIT. Last Frame: [FRAME: ID=52:"SEND_UNICAST" Seq=164 Len=7]
z2m: Adapter disconnected, stopping

I might need to downgrade to V1.0.3 which was working fine for me, but I haven’t yet searched for how to download and install old versions.

I started experiencing CRC errors after upgrading to firmware V1.0.7.
After downgrading back to V1.0.5, Zigbee2MQTT started working flawlessly again.