ZHA Sonoff Zigbee 3.0 USB Dongle Plus V2 randomly stuck in “Initializing”

Hi,

I’m facing a recurring issue with ZHA and I’m trying to properly debug it instead of just working around it.
My ZHA Sonoff Zigbee 3.0 USB Dongle Plus V2 is getting stuck on “Initializing” randomly about once a week after a HomeAssistant update, a few months back.

Problem:
Dongle works fine for days, then randomly goes to “Initializing” so all Zigbee devices stop working
Only fix is restarting HA Core (no host reboot needed)
Firmware still on 6.10.3 (no FW change) and I have no relevant errors in logs

What I tried:

  • Debug logging enabled ( recently so no logs yet)
  • Checked dmesg, lsusb, lsof
  • USB autosuspend is suspected (shows value 2), and I wasn’t able to set it to -1

Hardware:

  • SONOFF Zigbee 3.0 USB Dongle Plus V2 (firmware version 6.10.3)
  • HAOS 2026.4.2

Does anyone have the same issue or a permanent fix without upgrading firmware or switching to Z2M? I’ve read that upgrading to a newer version, can introduce more bugs, so I want to avoid that, and since I didn’t do any fw update, this isn’t the problem, if it worked fine for years, it should still work
I just want to understand the problem, and find a proper fix for it.

Thanks!


I enabled debug logging and captured the moment it died. Here’s what the log shows:

Everything was running normally: readCounters / getValue commands were succeeding every ~10 seconds, free buffers were stable at 249, no ASH framing errors, no overruns, no obvious timeouts.
At 2026-05-02 10:03:56 ZHA suddenly crashed with:textValueError: No gateway object exists to retrieve the config entry from.Right after that the coordinator disappears completely (“Unknown error”, 0 devices, “Initializing”).

I physically unplugged the dongle and plugged it back in.
Nothing happened. The dongle is not re-detected by the ZHA integration at all. Plug/unplug no longer triggers a reinitialization.

I forgot to mention that have HA running via Proxmox, and there I made a passthrough ( usb0: host=1a86:55d4 ) for this usb device.
In this error state, if I run lsusb -d 1a86:55d4 -v on promox shell, I can see the device:
Bus 003 Device 006: ID 1a86:55d4 QinHeng Electronics SONOFF Zigbee 3.0 USB Dongle Plus V2
*** this means the dongle is visible to proxmox!

if I run:dmesg | grep -i usb on HA shell I get:

[core-ssh ~]$ dmesg | grep -i usb                                                                                                                                                                                              
...
[482143.467670] usb 2-1: new full-speed USB device number 5 using xhci_hcd
[482143.601164] usb 2-1: New USB device found, idVendor=1a86, idProduct=55d4, bcdDevice= 4.42
[482143.601170] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[482143.601171] usb 2-1: Product: SONOFF Zigbee 3.0 USB Dongle Plus V2
[482143.601173] usb 2-1: Manufacturer: ITEAD
[482143.601174] usb 2-1: SerialNumber: 20221201142548
[482143.602696] cdc_acm 2-1:1.0: ttyACM2: USB ACM device

*** which means it is seen by HA as well!

The above two tests exclude a complete hardware failure or a simple physical disconnect problem.
This means the dongle is visible to both Proxmox and HAOS at the hardware level.

Proxmox version/config never changed, nor the hardware, only the Homeassistnt version, so it must be some driver/integreation level problem.
I am now lost, please point me in a different direction, how to investigate/solve this?

looking again through the debugging log at these lines:

and through this code:  https://github.com/home-assistant/core/blob/71494b6c97bc832810906c843b8b9d836eb3e201/homeassistant/components/zha/helpers.pyFile "/usr/src/homeassistant/homeassistant/components/zha/websocket_api.py", line 1086, in websocket_get_configuration
config_entry: ConfigEntry = get_config_entry(hass)
~~~~~~~~~~~~~~~~^^^^^^
File "/usr/src/homeassistant/homeassistant/components/zha/helpers.py", line 1092, in get_config_entry
raise ValueError("No gateway object exists to retrieve the config entry from.")
ValueError: No gateway object exists to retrieve the config entry from.
...
File "/usr/src/homeassistant/homeassistant/components/zha/websocket_api.py", line 378, in websocket_get_devices
zha_gateway_proxy: ZHAGatewayProxy = get_zha_gateway_proxy(hass)
~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "/usr/src/homeassistant/homeassistant/components/zha/helpers.py", line 1084, in get_zha_gateway_proxy
raise ValueError("No gateway object exists")
ValueError: No gateway object exists

I found the code of the error in these 3 functions:

def get_zha_gateway(hass: HomeAssistant) -> Gateway:
"""Get the ZHA gateway object."""
if (gateway_proxy := get_zha_data(hass).gateway_proxy) is None:
raise ValueError("No gateway object exists")
return gateway_proxy.gateway
def get_zha_gateway_proxy(hass: HomeAssistant) -> ZHAGatewayProxy:
"""Get the ZHA gateway object."""
if (gateway_proxy := get_zha_data(hass).gateway_proxy) is None:
raise ValueError("No gateway object exists")
return gateway_proxy
def get_config_entry(hass: HomeAssistant) -> ConfigEntry:
"""Get the ZHA gateway object."""
if (gateway_proxy := get_zha_data(hass).gateway_proxy) is None:
raise ValueError("No gateway object exists to retrieve the config entry from.")
return gateway_proxy.config_entry

I am not yet sure what to do with this info :slight_smile: