Field report · · The 408
The Zigbee radio rebooted every four minutes. A clean flash of the same firmware fixed it.
For two days the house’s Zigbee bridge restarted about fourteen times an hour. Every restart dropped every Zigbee device to “unknown” and set off the automations that watch them. The obvious suspect was innocent, the newer firmware didn’t help, and a clean flash of the old one did. If you run a Zigbee coordinator, this is the order of checks that gets you there.
What happened
The bridge kept losing the radio
The loop started the day the home server crashed and restarted. Every run of the bridge ended the same way:
- bridge
- Socket error ECONNRESET
- bridge
- Adapter disconnected, stopping
- radio
- Reboot reason: TASK_WDT
- radio memory
- 144 KB free at boot, 109 KB minutes later
The coordinator is a small network-attached radio with an ESP32 inside. Its own watchdog was killing it every few minutes, and each reboot cut the bridge’s connection.
Why it took two days
One innocent suspect, one misread number, one upgrade that didn’t help
- 01
The network change
A network change made the next day looked guilty. The restart rate was fourteen an hour before it and fourteen an hour after it, and the firewall had blocked nothing. Same rate on both sides means it isn’t the cause.
- 02
The uptime I misread
The radio’s uptime first read as 29.5 hours, which ruled out reboots. The counter was in milliseconds. The real uptime was nine minutes.
- 03
The newer firmware
A newer development build crashed just the same, every one and a half to three minutes, even with nothing connected. So it wasn’t load, and it wasn’t a bug in one version.
The fix
Same version, clean flash
The radio went onto USB on a desktop. Its settings partitions were backed up, the whole flash was erased, and the same stable version it had been running was written back as a full image. The Zigbee network itself lives on a separate chip and wasn’t touched.
Between reboots, with free memory falling after each start.
Reboots in 30 samples over 17 minutes, memory flat at 142 KB, then no bridge restarts in 48 hours.
Where this stops: what corrupted the old install was never established. Damaged settings or flash state is the leading suspect. It isn’t proof of a firmware bug, and this post doesn’t claim one.
The rule
Ask the device why it rebooted before you change anything
Count the rate, then compare it across the suspect. If it’s the same before and after a change, the change didn’t cause it.
Read the device’s own reboot reason. The bridge only knew the connection dropped. The radio knew why.
Check the unit before you trust a number. Milliseconds read as seconds hid the whole problem.
If an upgrade doesn’t fix a crash loop, erase before you upgrade again. Back up the settings first, then flash a known-good full image.
Do this Monday
Two steps before lunch
- Find where your coordinator logs its reboot reason, and write the path down while nothing is wrong.
- Back up its settings and your Zigbee network backup now. A clean flash is quick only when those already exist.
If your Zigbee radio rebooted every four minutes, which log would tell you first?