I recently set up a brand-new Home Assistant system and plugged in the Home Assistant Connect ZBT-2. I installed the OpenThread Border Router (OTBR) and Matter integrations, and everything seemed ready to go.
However, when I tried to add my very first Thread device—the new IKEA TIMMERFLOTTE sensor—the pairing process completely failed straight out of the box.
Since this was a fresh installation, it was frustrating to see it fail immediately. After digging deep into my logs, I found a widespread networking issue that I managed to solve. I wanted to share my findings and the step-by-step fix here to help anyone else hitting this exact wall with a new setup!
The Symptoms & Log Errors I Found
When I checked my OpenThread Border Router add-on logs right after the initial installation, they were filled with endless repeating loops of this error:
text
Default: mDNSPlatformSendUDP got error 99 (Cannot assign requested address) sending packet to ff02::fb on interface fe80::...
- What was happening: The OTBR container was trying to broadcast its presence via IPv6 multicast, but the underlying network layer was blocking the packets. This happens because having both Wi-Fi (
wlan0) and Ethernet interfaces active simultaneously on a fresh HA installation causes internal routing confusion across the virtual network interfaces.
How I Solved It
To fix it, I had to clean up my host networking and force the add-on to talk to the correct interface. Here is exactly what worked for me:
Step 1: Clean Up Host Networking
- Navigate to Settings > System > Network in Home Assistant.
- Under Network Adapter, I completely turned off/disabled Wi-Fi (wlan0). This forced my system to communicate strictly over my single active wired ethernet connection.
- Expand the IPv6 dropdown menu for your active network interface and make sure it is set to Automatic (do not leave it Disabled, as Thread relies heavily on IPv6 link-local addresses).
- Click Save.
Step 2: Unhide the Advanced Add-on Settings
- Go to Settings > Add-ons > OpenThread Border Router.
- Switch to the Configuration tab.
- Scroll all the way to the bottom of the page and toggle On the switch for "Show unused optional configuration options".
Step 3: Map the Interface & Enable Native mDNS
- Locate the newly revealed Backbone Network Interface field.
- Enter your exact physical wired network interface name (for my Raspberry Pi 5, this is strictly
end0). This forces the container to route traffic out of your real network port instead of looping internally. - Scroll down further to the Beta section.
- Toggle On the switch for "Enable beta mode with Thread 1.4 and native OpenThread mDNS". This switches the add-on away from the legacy system mDNS responder over to the native OpenThread handler, bypassing the routing loop bug entirely.
- Click Save at the bottom right.
Step 4: Restart the Add-on
- Go back to the Info tab of the OTBR add-on and click Restart.
The Result
When I checked my Log tab after the restart, the errors were completely gone. The log now initializes beautifully and ends with:
text
[NOTE]-ILS-----: Infra link selected: end0
s6-rc: info: service otbr-agent successfully started
[NOTE]-BBA-----: BackboneAgent: Backbone Router becomes Primary
Once the Backbone Router successfully became Primary, my Thread network was entirely healthy. I put my IKEA sensor into pairing mode, and it commissioned via Matter instantly.
If you are setting up a fresh ZBT-2 stick and your first Matter device fails right away, check your logs for that Error 99! Hopefully, this write-up saves you a few hours of troubleshooting. Let me know if this helps you get your devices connected