I recently migrated my Home Assistant installation from a Raspberry Pi 3B running Home Assistant OS to a Raspberry Pi 5 running Raspberry Pi OS with Home Assistant Core in Docker.
Hardware
- Raspberry Pi 5 8GB
- Official Raspberry Pi 27W USB-C power supply
- USB 3 SSD (system storage)
- WM1308 LoRaWAN concentrator
- Sonoff ZBDongle-P (Silicon Labs CP2102N)
The Zigbee dongle was connected to a USB 2.0 port (also tested with a USB extension cable and ferrite choke).
Symptoms
The Zigbee dongle was always detected correctly during boot:
cp210x converter detected
usb 3-2: cp210x converter now attached to ttyUSB0
However, about 30–140 seconds after boot, the kernel repeatedly logged:
cp210x ttyUSB0: failed set request 0x12 status: -110
As a result, ZHA failed to initialize the coordinator correctly.
Interestingly, unplugging and reconnecting the USB dongle immediately fixed the problem without requiring a reboot.
What was not the cause
I ruled out the following:
- Power supply (official 27W PSU)
- Faulty Sonoff ZBDongle-P
- USB port issues
- Docker USB passthrough (the container could access
/dev/ttyUSB0) - ModemManager (removed)
- brltty (not installed)
- USB extension cable / ferrite
- USB 2 vs USB 3 port
Root cause
The issue turned out to be a boot-time race condition.
Docker was configured with:
RestartPolicy: unless-stopped
This caused Home Assistant to start immediately after the Docker daemon became available.
Apparently, ZHA attempted to initialize the CP2102 interface while it was still not fully ready, resulting in repeated CP210x timeout errors (status -110).
Solution
I disabled Docker’s automatic restart for the Home Assistant container and created a systemd service to start it instead.
Before starting the container, the service waits until the Zigbee device exists and then adds a short delay:
ExecStartPre=/bin/sh -c 'until [ -e /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_... ]; do sleep 1; done'
ExecStartPre=/bin/sleep 45
ExecStart=/usr/bin/docker start -a homeassistant
After adding the startup delay:
- No more
cp210x ... failed set request 0x12 status: -110 - ZHA initializes correctly on every boot
- Zigbee network restores normally
- No need to unplug/replug the dongle
Additional migration note
When restoring a Home Assistant OS backup to Home Assistant Core (Docker), remember that the Home Assistant data inside the backup is stored under the data/ directory. Copy the contents of data/ into the Docker /config directory rather than extracting the archive directly into /config.
Also, when restoring ZHA, I received the message:
“Your old adapter was not found…”
Since I was using the same physical Sonoff ZBDongle-P on the new Raspberry Pi, selecting “Skip resetting the old adapter” successfully restored the existing Zigbee network. All devices and the network topology came back correctly.
Hopefully this helps anyone seeing CP210x timeout errors on a Raspberry Pi 5 with Home Assistant Core running in Docker.
Version information
HA Core 2026.7.2 (Container)
UI 20260624.5
Debian GNU/Linux 13 (trixie)
6.18.34+rpt-rpi-2712
Docker version 29.6.1, build 8900f1d