ZBT-2 refuses to install firmware & fails to connect

I have a new installation of Home Assistant installed as a virtual machine under Proxmox on my Dell PowerEdge R730XD. I have zero Zigbee devices configured currently, but I was intending to change that with my new ZBT-2 and Philips Hue smart lights.

I updated my Home Assistant OS to the latest change available:

  • Core: 2025.12.1
  • Supervisor: 2025.12.2
  • Operating System: 16.3
  • Frontend: 20251203.1

After plugging in the ZBT-2 into the server and permitting my Home Assistant VM to access the USB hardware, I rebooted Home Assistant and it could see the ZBT-2 integration. When I tried adding it, it generated an error.

The system logs read as:

2025-12-05 17:11:17.181 ERROR (MainThread) [homeassistant.components.homeassistant_hardware.firmware_config_flow] Failed to flash firmware
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/homeassistant_hardware/util.py", line 424, in async_flash_silabs_firmware
    await flasher.flash_firmware(fw_image, progress_callback=progress_callback)
  File "/usr/local/lib/python3.13/site-packages/universal_silabs_flasher/flasher.py", line 421, in flash_firmware
    await gecko.upload_firmware(data, progress_callback=progress_callback)
  File "/usr/local/lib/python3.13/site-packages/universal_silabs_flasher/gecko_bootloader.py", line 260, in upload_firmware
    await self._xmodem_completion_future
universal_silabs_flasher.gecko_bootloader.ReceiverCancelled
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/homeassistant_hardware/firmware_config_flow.py", line 203, in _install_firmware_step
    await self.firmware_install_task
  File "/usr/src/homeassistant/homeassistant/components/homeassistant_hardware/firmware_config_flow.py", line 310, in _install_firmware
    self._probed_firmware_info = await async_flash_silabs_firmware(
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<9 lines>...
    )
    ^
  File "/usr/src/homeassistant/homeassistant/components/homeassistant_hardware/util.py", line 430, in async_flash_silabs_firmware
    raise HomeAssistantError("Failed to flash firmware") from err
homeassistant.exceptions.HomeAssistantError: Failed to flash firmware

I then looked around and found a post about using a website to update it using Google Chrome or Microsoft Edge.

I tried both Chrome and Edge on a Windows 11 machine and Chrome on a Mac laptop. In each case the Zigbee device could be seen through the serial port, but it would loop for 10+ minutes saying that it was connecting and should only take a few seconds.

I then tried holding down the reset button beside the USB port and updating it, but that had no luck.

What am I missing here? Is my device defective? 3 separate computers have failed to update it.

I may have solved my own problem just after posting this. I thought it was a long shot, but I tried disabling my DNS-level ad blocker. Nearly 6 years ago I followed the instructions from this blog post for my Mikrotik router. It would make it behave similar to a Pi-hole.

Apparently there’s something in that list that was preventing the ZBT-2 device from being flashed, because once I disabled all of the ad sites from the routing list, the device suddenly connected.

This is both good news and really concerning news. Why would ad sites block it from connecting? That’s not supposed to happen…

It’s still broken. After successfully flashing the firmware (and keeping my DNS-level blocks disabled for now) I told Home Assistant, through the Home Assistant Connect ZBT-2 integration, to try updating the firmware itself. It generated the error again:

Logger: homeassistant.components.homeassistant_hardware.firmware_config_flow
Source: components/homeassistant_hardware/firmware_config_flow.py:203
integration: Home Assistant Hardware (documentation, issues)
First occurred: 7:10:19 PM (1 occurrence)
Last logged: 7:10:19 PM

Failed to flash firmware
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/homeassistant_hardware/util.py", line 421, in async_flash_silabs_firmware
    await flasher.enter_bootloader()
  File "/usr/local/lib/python3.13/site-packages/universal_silabs_flasher/flasher.py", line 358, in enter_bootloader
    await self.probe_app_type()
  File "/usr/local/lib/python3.13/site-packages/universal_silabs_flasher/flasher.py", line 329, in probe_app_type
    raise RuntimeError("Failed to probe running application type")
RuntimeError: Failed to probe running application type

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/homeassistant_hardware/firmware_config_flow.py", line 203, in _install_firmware_step
    await self.firmware_install_task
  File "/usr/src/homeassistant/homeassistant/components/homeassistant_hardware/firmware_config_flow.py", line 310, in _install_firmware
    self._probed_firmware_info = await async_flash_silabs_firmware(
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<9 lines>...
    )
    ^
  File "/usr/src/homeassistant/homeassistant/components/homeassistant_hardware/util.py", line 430, in async_flash_silabs_firmware
    raise HomeAssistantError("Failed to flash firmware") from err
homeassistant.exceptions.HomeAssistantError: Failed to flash firmware

Any ideas? I am certain I have updated to the latest firmware - 7.4.4.6. I know the post I linked earlier suggested to skip it for now, but I saw no other option available.

1 Like

Just guessing here, but document what you find.
The error logs indicate a firmware update is not working.
Check the url of the firmware update routine the Python code is attempting to download from and see if there is actually a file there. SiLabs may have updated the firmware and the latest may be at a new location.

Repeat the update. The url may have been busy last time. Same results?

Others have documented manual firmware updating. Try that and see if the problem is bypassed and the update continues. If so, please report in GitHub so the developers can fix.

Either way, please document what you find.

I am not well versed in python code. I would not be able to isolate the issue and track it down effectively.

I have solved my problem for now. As the post that I referenced earlier mentions, the latest firmware version is 7.4.4.6. It has a known bug that has been reported in at least 2 locations:

  1. home-assistant/core - issue #157218
  2. NabuCasa/silabs-firmware-builder - issue #149

Both of these issues point to the same problem as me with the async_flash_silabs_firmware function failing. The workaround for this point in time (December 5, 2025) is to use firmware version 7.4.4.5.

I found version 7.4.4.5 from the NabuCasa/silabs-firmware-builder GitHub page under their Releases for v2025.11.24.

More specifically, I downloaded the “skyconnect_zigbee_ncp_7.4.4.5.gbl” firmware file, then used the firmware install page on the Home Assistant Connect ZBT-2 page to manually upload the file.

After downgrading my firmware from 7.4.4.6 to 7.4.4.5, I plugged it into my Dell PowerEdge R730XD, told Proxmox under the hardware section for the Home Assistant VM to allow the USB for the ZBT-2 device, and then it appeared in Home Assistant.

After that I was able to go through the flow under Settings → Devices & services where I allowed Home Assistant Connect ZBT-2 to continue with its merry way with a Zigbee network.

This time no error occurred.

I hope if anyone else finds themself with this problem it’ll save them some time.

(I had a few more links, but apparently new members may only paste 2 links per post. I kept the most relevant ones, but couldn’t provide direct links to the issues.)

Oh my! What a convoluted but successful workaround.

Seems to be an installation conflict error. Did the new release for 2025.12 that just came out a short while ago have the same issue?

1 Like

All of this behavior that I described was with the Home Assistant 2025.12.2 release. Since I am only just starting to work on Home Assistant I had little fear about ruining everything.

The issues were reported 1-2 weeks ago, so they predate the 2025.12 release.

  • home-assistant/core - issue #157218 (November 24, 2025)
  • NabuCasa/silabs-firmware-builder - issue #149 (November 25, 2025)

Same issue here on both 2025.12.0 and 2025.12.1.

Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/components/homeassistant_hardware/firmware_config_flow.py”, line 203, in _install_firmware_step
await self.firmware_install_task
File “/usr/src/homeassistant/homeassistant/components/homeassistant_hardware/firmware_config_flow.py”, line 310, in _install_firmware
self._probed_firmware_info = await async_flash_silabs_firmware(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
…<9 lines>…
)
^
File “/usr/src/homeassistant/homeassistant/components/homeassistant_hardware/util.py”, line 430, in async_flash_silabs_firmware
raise HomeAssistantError(“Failed to flash firmware”) from err
homeassistant.exceptions.HomeAssistantError: Failed to flash firmware

You will need 2 things:

  1. Your Home Assistant must be at least version 2025.11.x, so if you’re on 2025.12.1 you’re fine.
  2. You must manually set your ZBT-2 to version 7.4.4.5. As I mentioned before, the latest (7.4.4.6) has a known bug. You will want to visit the NabuCasa/silabs-firmware-builder GitHub release page and download their “skyconnect_zigbee_ncp_7.4.4.5.gbl” file.

To manually install firmware version 7.4.4.5 of ZBT-2:

  1. Visit the Home Assistant Connect ZBT-2 webpage.
  2. Click on the install firmware link. You must be using Chrome or Edge browser (I could do this on both a mac and Windows 11 machine).
  3. Follow the prompts, but choose to browse for the file.
  4. Select the .gbl for the v7.4.4.5 release.
  5. Wait for it to install.

That should clear you up.

5 Likes

Thank you very much for your clear directions. Unfortunately I don’t use Chrome or Edge, and am not looking to add the complexity of spinning up a VM to run either of them. Hopefully they will resolve the issue for an update that allows HA to update and install the product they endorse. My current Zigbee is still running fine, and I was just upgrading as a way to support the funding for the HA people. :slight_smile:

I have the same issue, I just got the device. Was trying to support them by buying this but it doesn’t work. It won’t install firmware for either Matter or Zigbee, same error for both.

You’ll need to try the steps I suggested until they resolve the issue. You will need to manually install version 7.4.4.5 from the website I cited in my earlier responses.

Can confirm as of 2025.12.4 and zigbee firmware 7.4.4.6 update from ZBT-1 to ZBT-2 worked perfectly with only a few clicks in less than 2 minutes and successfully migrated 35 zigbee devices… No issues noted for 24 hours…

Adding my experience since the solution accepted didn’t work in my case.

Home Assistant Core: 2025.12.4

Was running into the same issue. I tried the recommended solution, download 7.4.4.4 firmware and install via Install Firmware – Device Toolbox

It would intermittently detect it and I switched USB ports, but when it does and I try to install the firmware it would fail and the debug log says:

2025-12-23 15:23:05 emscripten zigpy.appdb[42] DEBUG SQLite version for <webserial_transport.MockSqlite3 object at 0xa6f320>: 3.31.1
2025-12-23 15:23:05 emscripten universal_silabs_flasher.flasher[42] INFO Triggering rts_dtr bootloader
2025-12-23 15:23:05 emscripten webserial_transport[42] DEBUG Opening a serial connection at 115200 with rtscts=False
2025-12-23 15:24:57 emscripten zigpy.appdb[42] DEBUG SQLite version for <webserial_transport.MockSqlite3 object at 0x126ada8>: 3.31.1
2025-12-23 15:24:57 emscripten universal_silabs_flasher.flasher[42] INFO Triggering rts_dtr bootloader
2025-12-23 15:24:57 emscripten webserial_transport[42] DEBUG Opening a serial connection at 115200 with rtscts=False

I then changed it to a usb port I wasn’t using, configured it again in VirtualBox and was able to move forward with the regular discovery process after selecting Manual install. It completed the flash, then got stuck when it asked to Add Zigbee to HomeAssitant, where I had to unplug and replug in the cable to complete the process. Now it works.

I followed your directions and downloaded the correct gbl file. I then went to the Connect ZBT-2 webpage. I clicked on “Install Firmware”. I then selected the device on the com port. I the clicked on “Upload your own firmware”. I clicked upload and pointed to the skyconnect_zigbee_ncp_7.4.4.5.gbl file I previously downloaded. I click install and it tells me “Installation success”. I click on continue and it comes back and says my version is 7.4.4.6 build 0 (20251124171423).
Am I doing something incorrectly?

Hi, I also experienced this issue, but thankfully after disconnecting the ZBT-2 from my PC (which I used to upgrade the firmware), and reconnecting it to my Home Assistant VM (on Unraid), the Thread firmware flash completed successfully.

I couldn’t do this before I downgraded the firmware, so I assume it was successful, but the new version number just wasn’t reflected in the online firmware utility.

Hi, today I seem to have run into the same issue, my perfectly running ZBT-2 failed to be recognized after a system restart.
In trying to follow the instructions above of manually installing the firmware version 7.4.4.5 using the firmware install toolbox I got stuck as there seems not to be a choice to download your own file.
For now my brand new ZBT-2 seems bricked…
Need help

I found this topic after recently purchasing the ZBT-2 and trying to set it up with thread.

In this open issue (#157869), someone said to switch the device to a USB 2.0 port. I made the switch and the device completed the setup perfectly! Created an account to write this, hopefully it helps others :slight_smile:

2 Likes

My problem has been solved magically - I rebooted the system and waited for some minutes, then everything worked…
Not sure what happened, and hope it will not return, if it does I will try the USB 2.0 port.
Rgds,
Bernard

Wild guess, but you probably used the device path instead of the serial by id path when setting up the integration.

There’s a warning in the ZHA integration page about avoiding the device path since this can change on reboot.

Redo the integration setup with the serial by id path, and switch to usb2 while you’re at it