Matter/Thread devices Unavailable

All my matter/thread devices are Unavailable. They have worked for about a year. At odd times when devices were Unavailable, restarting add-ons and reloading integrations has fixed it, but not this time.

Is there a trouble shooting guide somewhere?

My Matter/Thread devices are:

  • 3 Nanoleaf NL67 Lights and
  • 2 Eve Energy 20ECF6001 Smart Switches and
  • a Home Assistant Connect ZBT-1.

My system is:

  • Installation method Home Assistant OS
  • Core 2025.5.3
  • Supervisor 2025.05.1
  • Operating System 15.2

The OpenThread Border Router add-on has some failure messages, but I don’t know how serious they are; and the Matter Server add-on is full of serious looking error messages. Should I post long logs here?

Here’s just a bit of the OpenThread Border Router add-on log, enough to show it is accessing the Home Assistant Connect ZBT-1 OK.

Thanks for any pointers.

 Add-on: OpenThread Border Router
 OpenThread Border Router add-on
-----------------------------------------------------------
 Add-on version: 2.13.0
 You are running the latest version of this add-on.
 System: Home Assistant OS 15.2  (amd64 / generic-x86-64)
 Home Assistant Core: 2025.5.3
 Home Assistant Supervisor: 2025.05.1
-----------------------------------------------------------
 Please, share the above information when looking for help
 or support in, e.g., GitHub, forums or the Discord chat.
-----------------------------------------------------------
s6-rc: info: service banner successfully started
s6-rc: info: service universal-silabs-flasher: starting
[16:53:46] INFO: Checking /dev/ttyUSB0 identifying Home Assistant Connect ZBT-1 from Nabu Casa.
[16:53:46] INFO: Starting universal-silabs-flasher with /dev/ttyUSB0
2025-05-26 16:53:46.545 homeassistant universal_silabs_flasher.flash INFO Extracted GBL metadata: NabuCasaMetadata(metadata_version=2, sdk_version='4.4.4', ezsp_version=None, ot_rcp_version='SL-OPENTHREAD/2.4.4.0_GitHub-7074a43e4' (2.4.4.0), cpc_version=None, fw_type=<FirmwareImageType.OPENTHREAD_RCP: 'openthread_rcp'>, fw_variant=None, baudrate=460800)
2025-05-26 16:53:46.546 homeassistant universal_silabs_flasher.flasher INFO Probing ApplicationType.GECKO_BOOTLOADER at 115200 baud
2025-05-26 16:53:48.551 homeassistant universal_silabs_flasher.flasher INFO Probing ApplicationType.SPINEL at 460800 baud
2025-05-26 16:53:49.664 homeassistant universal_silabs_flasher.flasher INFO Detected ApplicationType.SPINEL, version 'SL-OPENTHREAD/2.4.4.0_GitHub-7074a43e4' (2.4.4.0) at 460800 baudrate (bootloader baudrate None)
2025-05-26 16:53:49.665 homeassistant universal_silabs_flasher.flash INFO Firmware version 'SL-OPENTHREAD/2.4.4.0_GitHub-7074a43e4' (2.4.4.0) is flashed, not re-installing
s6-rc: info: service universal-silabs-flasher successfully started
s6-rc: info: service otbr-agent: starting
[16:53:50] INFO: Setup OTBR firewall...
[16:53:50] INFO: Starting otbr-agent...
[NOTE]-AGENT---: Running 0.3.0-b067e5ac-dirty
[NOTE]-AGENT---: Thread version: 1.3.0
[NOTE]-AGENT---: Thread interface: wpan0
[NOTE]-AGENT---: Radio URL: spinel+hdlc+uart:///dev/ttyUSB0?uart-baudrate=460800&uart-flow-control
[NOTE]-AGENT---: Radio URL: trel://enp3s0
[NOTE]-ILS-----: Infra link selected: enp3s0
55d.19:28:47.300 [C] P-SpinelDrive-: Software reset co-processor successfully
00:00:00.053 [N] RoutingManager: BR ULA prefix: fdd7:ce2d:7501::/48 (loaded)
00:00:00.053 [N] RoutingManager: Local on-link prefix: fded:edc1:ade7:a15a::/64
00:00:00.070 [N] Mle-----------: Role disabled -> detached
00:00:00.082 [N] P-Netif-------: Changing interface state to up.
00:00:00.091 [W] P-Netif-------: Failed to process request#2: No such process
00:00:00.092 [W] P-Netif-------: Failed to process request#6: No such process
s6-rc: info: service otbr-agent successfully started
s6-rc: info: service otbr-agent-configure: starting
Done
s6-rc: info: service otbr-agent-configure successfully started
s6-rc: info: service otbr-agent-rest-discovery: starting
00:00:00.666 [W] P-RadioSpinel-: Unexpected Spinel transaction message: 3
00:00:00.666 [W] P-RadioSpinel-: Error processing response: Drop
[16:53:50] INFO: Successfully sent discovery information to Home Assistant.
s6-rc: info: service otbr-agent-rest-discovery successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
00:00:01.767 [W] P-HdlcIntface-: Error decoding hdlc frame: Parse
00:00:05.831 [W] P-RadioSpinel-: radio tx timeout
00:00:05.831 [W] P-RadioSpinel-: RCP failure detected
00:00:05.831 [W] P-RadioSpinel-: Trying to recover (1/2)
00:00:05.834 [W] P-HdlcIntface-: Error decoding hdlc frame: Parse
00:00:05.861 [N] P-RadioSpinel-: RCP recovery is done
00:00:12.431 [N] Mle-----------: RLOC16 3c00 -> fffe
00:00:12.706 [N] Mle-----------: Attach attempt 1, AnyPartition reattaching with Active Dataset
00:00:15.611 [N] Mle-----------: RLOC16 fffe -> 9805
00:00:15.614 [N] Mle-----------: Role detached -> child
00:00:29.778 [N] MeshForwarder-: Dropping (reassembly queue) IPv6 UDP msg, len:681, chksum:922a, ecn:no, sec:yes, error:ReassemblyTimeout, prio:normal, rss:-74.5, radio:15.4
00:00:29.778 [N] MeshForwarder-:     src:[fdfe:46f:1def:cdb8:d781:3cfe:d9c7:a3e7]:49200
00:00:29.778 [N] MeshForwarder-:     dst:[fdfe:46f:1def:cdb8:490a:84d2:aae4:732f]:53547
00:00:44.554 [N] Mle-----------: Different partition (peer:2099352494, local:1219430703)
00:00:44.555 [N] Mle-----------: Attach attempt 0, BetterPartition 
00:00:46.914 [N] Mle-----------: RLOC16 9805 -> 3c00
00:00:46.923 [N] Mle-----------: Role child -> router
00:00:46.923 [N] Mle-----------: Partition ID 0x48af092f
00:00:46.931 [W] P-Netif-------: Successfully added an external route fc00::/7 in kernel
[NOTE]-BBA-----: BackboneAgent: Backbone Router becomes Primary!
00:00:54.783 [W] DuaManager----: Failed to perform next registration: NotFound
00:00:56.783 [N] MeshForwarder-: Dropping (reassembly queue) IPv6 UDP msg, len:681, chksum:3749, ecn:no, sec:yes, error:ReassemblyTimeout, prio:normal, rss:-75.0, radio:15.4
00:00:56.783 [N] MeshForwarder-:     src:[fdfe:46f:1def:cdb8:d781:3cfe:d9c7:a3e7]:49201
00:00:56.783 [N] MeshForwarder-:     dst:[fdfe:46f:1def:cdb8:490a:84d2:aae4:732f]:53547

Can you double check in Settings > Devices & services > Thread > Configure that there is indeed only a single Thread Border router in your network.

Next would be to check if the devices still announce themselves on the network under Settings > System > Network > under “Network discovery” at the bottom select “Zeroconf browser”. There should be _matter._tcp.local. services displayed. You can find which one matches the Thread devices by their node ID (see also GitHub - agners/thread-debug: Repository with instructions, commands and scripts to help debug Thread networks for a bit more details how the services match your devices).

2 Likes

Settings > Devices & services > Thread > Configure
1 border router

Settings > System > Network > Network discovery > Zeroconf browser
yep devices are there

Thanks for the tips. I’ll try resetting and re-adding my devices.

Can anyone help me further troubleshoot this?

I’ve tried re-configuring everything from scratch, but the problem persists. I’m wondering if my ZBT-1 might be faulty, but there are no burn marks on it and I think the logs show it is at least responding to software.

In the logbook (newest messages first) I’ve got:
Home Assistant Connect ZBT-1 (52f7a546) Firmware turned off
Home Assistant Connect ZBT-1 (52f7a546) became unavailable

In the OpenThread Border Router add-on log I’ve got a series of messages like:
Default: mDNSPlatformSendUDP got error 99 (Cannot assign requested address) sending packet to ff02::fb on interface fe80::2098:d2ff:fedf:1c5e/veth9be59bf/16
(with variation only in the last address).

I finally have it working again after lots of rabbit holes. I read lots about IPv6 networking issues, some saying HA didn’t do it right and it needed to be disabled to the ISP, worrying about maybe my mesh setup being the culprit … anyway I’ve improved my mesh as a result.

Android HA companion app > Settings > Devices & services ( > Integrations ) > Thread > Configure > SEND CREDENTIALS TO HOME ASSISTANT

Still fails with:
“You don’t have any credentials to import” OK

I read that the credentials are stored in Google Play services and deleting it’s data:

Settings > search for “play services” > Gllogle Play services > Storage and cache > Clear storage > Clear all data

will clear old credentials and allow the new credentials to be stored (as well as deleting your cards stored in Google Wallet).

So I did that, but the above still fails.

Then I read to try:

Android HA companion app > Settings > Companion app > Troubleshooting > Sync Thread credentials

It says: “Sync Thread credentials {green tick} Home Assistant and this device use the same network” OK

At this stage I can provision matter/thread devices, although the above SEND CREDENTIALS TO HOME ASSISTANT still fails.

So HA matter/thread is still a bit rough around the edges, but works.