SLZB-MR1U Thread Border router problem

I’m really struggling with Thread Border router and matter.

I’m using SLZB-MR1U and trying to pair a new Ikea Matter bulb.

I have followed this guide to the point…

Also tried and search and try alot of things from different guides and forum threads.

Thread integration has a network and a phone icon with a key. I have tried debug/Sync thread credentials which succeeds and tell me HA and phone are on same network.

But when adding the unit it connects to, sends credentials and then gets stuck on “Checking network connectivity.” until it fails

During this process, should anything be seen in the OpenThread Border Router add-on log?

I can’t see any special errors in the log.

After a while I see some Meshforwarder errors but no idea what they are about

00:41:03.283 [N] MeshForwarder-: dst:[fe80:0:0:0:ab:81b7:b332:8890]:19788
00:41:04.214 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:96, chksum:db58, ecn:no, to:02ab81b7b3328890, sec:no, error:NoAck, prio:net, radio:15.4

Do I even have a working Thread network? How do I know?

Is it credential issues?

Are there any logs I can check/provide?

Really scratching my head here…

– Edit 260113

Added complete log from OTBR starting up and then trying to add matter device.
I have now Also changed SLZB-MR1U to USB mode and connect with USB mode instead of POE. Didnt see any erros about this but wanted to try at least since it’s recommended to use USB mode.

Using EFR32MG21 Revision: 20241105 in MR1U

Starting from 00:11:11.500 happens after I try to add matter devices. It doenst show up directly when trying to add device but a while after. No idea if it’s something else.

I have IPv6 auto configured in both HA and in my router (ISP Telia router Technicolor EWA 1330 (F1) so this should be up and running.

[08:34:17] INFO: Web UI and REST API port are exposed, starting otbr-web.
s6-rc: info: service mdns: starting
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service mdns successfully started
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service banner: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
[08:34:17] INFO: Starting mDNS Responder...
Default: mDNSResponder (Engineering Build) (Dec 15 2025 09:14:53) starting
-----------------------------------------------------------
 Add-on: OpenThread Border Router
 OpenThread Border Router add-on
-----------------------------------------------------------
 Add-on version: 2.15.3
 You are running the latest version of this add-on.
 System: Home Assistant OS 16.3  (amd64 / qemux86-64)
 Home Assistant Core: 2025.12.5
 Home Assistant Supervisor: 2026.01.0
-----------------------------------------------------------
 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 otbr-agent: starting
[08:34:18] INFO: Migrating OTBR settings if needed...
2026-01-13 08:34:18 homeassistant asyncio[213] DEBUG Using selector: EpollSelector
2026-01-13 08:34:18 homeassistant zigpy.serial[213] DEBUG Opening a serial connection to '/dev/serial/by-id/usb-SMLIGHT_SMLIGHT_SLZB-MR1U_SLZB-MR1U237027-if00' (baudrate=460800, xonxoff=False, rtscts=False)
2026-01-13 08:34:18 homeassistant serialx.platforms.serial_posix[213] DEBUG Configuring serial port '/dev/serial/by-id/usb-SMLIGHT_SMLIGHT_SLZB-MR1U_SLZB-MR1U237027-if00'
2026-01-13 08:34:18 homeassistant serialx.platforms.serial_posix[213] DEBUG Configuring serial port: [0, 0, 3248, 0, 4100, 4100, [b'\x03', b'\x1c', b'\x7f', b'\x15', b'\x04', 0, 0, b'\x00', b'\x11', b'\x13', b'\x1a', b'\x00', b'\x12', b'\x0f', b'\x17', b'\x16', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00']]
2026-01-13 08:34:18 homeassistant serialx.platforms.serial_posix[213] DEBUG Setting low latency mode: True
2026-01-13 08:34:18 homeassistant serialx.platforms.serial_posix[213] DEBUG Setting modem pins: ModemPins[!dtr !rts]
2026-01-13 08:34:18 homeassistant serialx.platforms.serial_posix[213] DEBUG TIOCMBIC: 0x00000006
2026-01-13 08:34:18 homeassistant zigpy.serial[213] DEBUG Connection made: <serialx.platforms.serial_posix.PosixSerialTransport object at 0x7fce99473950>
2026-01-13 08:34:18 homeassistant universal_silabs_flasher.spinel[213] DEBUG Sending frame SpinelFrame(header=SpinelHeader(transaction_id=0, network_link_id=0, flag=2), command_id=<CommandID.RESET: 1>, data=b'\x02')
2026-01-13 08:34:18 homeassistant universal_silabs_flasher.spinel[213] DEBUG Sending data b'~\x80\x01\x02\xea\xf0~'
2026-01-13 08:34:18 homeassistant serialx.descriptor_transport[213] DEBUG Immediately writing b'~\x80\x01\x02\xea\xf0~'
2026-01-13 08:34:18 homeassistant serialx.descriptor_transport[213] DEBUG Sent 7 of 7 bytes
2026-01-13 08:34:18 homeassistant serialx.descriptor_transport[213] DEBUG Event loop woke up reader
2026-01-13 08:34:18 homeassistant serialx.descriptor_transport[213] DEBUG Received b'~\x80\x06\x00p\xeet~'
2026-01-13 08:34:18 homeassistant universal_silabs_flasher.spinel[213] DEBUG Decoded HDLC frame: HDLCLiteFrame(data=b'\x80\x06\x00p')
2026-01-13 08:34:18 homeassistant universal_silabs_flasher.spinel[213] DEBUG Parsed frame SpinelFrame(header=SpinelHeader(transaction_id=0, network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_IS: 6>, data=b'\x00p')
2026-01-13 08:34:18 homeassistant universal_silabs_flasher.spinel[213] DEBUG Sending frame SpinelFrame(header=SpinelHeader(transaction_id=3, network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b'\x08')
2026-01-13 08:34:18 homeassistant universal_silabs_flasher.spinel[213] DEBUG Sending data b'~\x83\x02\x08\xbc\x9a~'
2026-01-13 08:34:18 homeassistant serialx.descriptor_transport[213] DEBUG Immediately writing b'~\x83\x02\x08\xbc\x9a~'
2026-01-13 08:34:18 homeassistant serialx.descriptor_transport[213] DEBUG Sent 7 of 7 bytes
2026-01-13 08:34:18 homeassistant serialx.descriptor_transport[213] DEBUG Event loop woke up reader
2026-01-13 08:34:18 homeassistant serialx.descriptor_transport[213] DEBUG Received b'~\x83\x06\x08T\x0fW\xff\xfe\xbd\xd4\xe7\x93k~'
2026-01-13 08:34:18 homeassistant universal_silabs_flasher.spinel[213] DEBUG Decoded HDLC frame: HDLCLiteFrame(data=b'\x83\x06\x08T\x0fW\xff\xfe\xbd\xd4\xe7')
2026-01-13 08:34:18 homeassistant universal_silabs_flasher.spinel[213] DEBUG Parsed frame SpinelFrame(header=SpinelHeader(transaction_id=3, network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_IS: 6>, data=b'\x08T\x0fW\xff\xfe\xbd\xd4\xe7')
2026-01-13 08:34:18 homeassistant serialx.descriptor_transport[213] DEBUG Closing at the request of the application
2026-01-13 08:34:18 homeassistant zigpy.serial[213] DEBUG Waiting for serial port to close
2026-01-13 08:34:18 homeassistant serialx.descriptor_transport[213] DEBUG Closing connection: None
2026-01-13 08:34:18 homeassistant serialx.descriptor_transport[213] DEBUG Closing file descriptor 7
2026-01-13 08:34:18 homeassistant serialx.descriptor_transport[213] DEBUG Calling protocol `connection_lost` with exc=None
2026-01-13 08:34:18 homeassistant zigpy.serial[213] DEBUG Connection lost: None
Adapter settings file /data/thread/0_540f57fffebdd4e7.data is the most recently used, skipping
[08:34:18] 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/serial/by-id/usb-SMLIGHT_SMLIGHT_SLZB-MR1U_SLZB-MR1U237027-if00?uart-baudrate=460800&uart-init-deassert
[NOTE]-AGENT---: Radio URL: trel://enp1s0
[NOTE]-ILS-----: Infra link selected: enp1s0
50d.10:16:01.130 [C] P-SpinelDrive-: Software reset co-processor successfully
00:00:00.149 [N] RoutingManager: BR ULA prefix: fdb9:43df:b445::/48 (loaded)
00:00:00.149 [N] RoutingManager: Local on-link prefix: fd30:3fe2:cf35:ce0a::/64
00:00:00.179 [N] Mle-----------: Role disabled -> detached
00:00:00.191 [N] P-Netif-------: Changing interface state to up.
00:00:00.210 [W] P-Netif-------: Failed to process request#2: No such process
00:00:00.210 [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
s6-rc: info: service otbr-web: starting
s6-rc: info: service otbr-web successfully started
[08:34:18] INFO: Starting otbr-web...
[INFO]-WEB-----: Running 0.3.0-b067e5ac-dirty
listenAddr not specified, using default ::
[INFO]-WEB-----: Border router web started on wpan0
Done
s6-rc: info: service otbr-agent-configure successfully started
s6-rc: info: service otbr-agent-rest-discovery: starting
00:00:00.365 [W] P-Daemon------: Failed to write CLI output: Broken pipe
[08:34:18] 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:27.789 [N] Mle-----------: RLOC16 8c00 -> fffe
00:00:28.054 [N] Mle-----------: Attach attempt 1, AnyPartition reattaching with Active Dataset
00:00:34.554 [N] RouterTable---: Allocate router id 35
00:00:34.554 [N] Mle-----------: RLOC16 fffe -> 8c00
00:00:34.569 [N] Mle-----------: Role detached -> leader
00:00:34.569 [N] Mle-----------: Partition ID 0x11789bd5
[NOTE]-BBA-----: BackboneAgent: Backbone Router becomes Primary!
00:00:38.019 [W] DuaManager----: Failed to perform next registration: NotFound
00:11:11.500 [N] RouterTable---: Allocate router id 48
00:13:05.653 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:96, chksum:b751, ecn:no, to:2ee5c0e2ef145721, sec:no, error:NoAck, prio:net, radio:15.4
00:13:05.653 [N] MeshForwarder-:     src:[fe80:0:0:0:f8fa:1759:cd5d:bfca]:19788
00:13:05.653 [N] MeshForwarder-:     dst:[fe80:0:0:0:2ce5:c0e2:ef14:5721]:19788
00:13:06.943 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:96, chksum:48f3, ecn:no, to:2ee5c0e2ef145721, sec:no, error:NoAck, prio:net, radio:15.4
00:13:06.943 [N] MeshForwarder-:     src:[fe80:0:0:0:f8fa:1759:cd5d:bfca]:19788
00:13:06.943 [N] MeshForwarder-:     dst:[fe80:0:0:0:2ce5:c0e2:ef14:5721]:19788
00:13:07.393 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:96, chksum:1ea2, ecn:no, to:2ee5c0e2ef145721, sec:no, error:NoAck, prio:net, radio:15.4
00:13:07.393 [N] MeshForwarder-:     src:[fe80:0:0:0:f8fa:1759:cd5d:bfca]:19788
00:13:07.393 [N] MeshForwarder-:     dst:[fe80:0:0:0:2ce5:c0e2:ef14:5721]:19788
00:14:41.077 [N] RouterTable---: Release router id 48

Is ipv6 enabled on your network? Can you reach the internet from your phone when commissioning?

Yes. IPv6 is according to my knowledge on.

HA settings:

Router settings:

And yes I can access internet (through wifi) on my phone when adding trying to add matter device.

Ok that’s good. Can you check what is providing the IP (everything between the square brackets)

dst:[fe80:0:0:0:2ce5:c0e2:ef14:5721]:19788

It says it isn’t able to reach it.
Can you check the logs on the slight device as well?

Sorry if I am a bit stupid about this. I really don’t have knowledge about IP6.

How can I check which unit has that IP6 adress?
My router only shows connected units with IP4 adresses.

The systems log on SLZB-MR1U unit really doesnt say much.

rnet | connected
[13.01.2026 08:27:54] Network | Use ETH
[13.01.2026 08:27:54] Network | [POST] result: 200
[13.01.2026 08:27:54] stats | Statistics sent
[13.01.2026 08:27:54] stats | Heap: 2492
[13.01.2026 08:27:55] time | timezone: CET-1CEST,M3.5.0,M10.5.0/3
[13.01.2026 08:27:55] time | Tuesday, January 13 2026 08:27:55
[13.01.2026 08:27:55] taskTimeSync | Heap: 1928
[13.01.2026 08:27:55] time | stop task
[13.01.2026 08:27:55] time | Heap: 1928
[13.01.2026 08:28:02] internet state | Heap: 2888
[13.01.2026 08:28:03] EventSender | [_handleNewClient] new client: 192.168.0.237
[13.01.2026 08:28:03] internet state | Heap: 2888
[13.01.2026 08:28:15] EventSender | [_handleNewClient] new client: 192.168.0.128
[13.01.2026 08:28:31] EventSender | [_handleNewClient] new client: 192.168.0.82
[13.01.2026 08:28:31] internet state | Heap: 2888
[13.01.2026 08:31:50] internet state | Heap: 2888
[13.01.2026 08:31:51] EventSender | [_handleNewClient] new client: 192.168.0.237
[13.01.2026 08:31:51] internet state | Heap: 2888
[13.01.2026 08:41:24] internet state | Heap: 2888
[13.01.2026 08:56:24] internet state | Heap: 2880
[13.01.2026 09:11:24] internet state | Heap: 2880
[13.01.2026 09:15:21] internet state | Heap: 2888
[13.01.2026 09:15:22] EventSender | [_handleNewClient] new client: 192.168.0.82
[13.01.2026 09:15:22] internet state | Heap: 2880
[13.01.2026 09:15:51] EventSender | [_handleNewClient] new client: 192.168.0.82
[13.01.2026 09:15:51] internet state | Heap: 2880
[13.01.2026 09:16:52] ConfigHelper | write config
[13.01.2026 09:16:52] ConfigHelper | config saved
[13.01.2026 09:17:12] ConfigHelper | write config
[13.01.2026 09:17:12] ConfigHelper | config saved
[13.01.2026 09:17:53] internet state | Heap: 2888
[13.01.2026 09:26:23] EventSender | [_handleNewClient] new client: 192.168.0.82
[13.01.2026 09:26:23] internet state | Heap: 2880
[13.01.2026 09:26:24] internet state | Heap: 2880
[13.01.2026 09:27:38] internet state | Heap: 2888
[13.01.2026 09:30:24] internet state | Heap: 2888
[13.01.2026 09:30:24] EventSender | [_handleNewClient] new client: 192.168.0.82
[13.01.2026 09:30:24] internet state | Heap: 2864
[13.01.2026 09:31:32] internet state | Heap: 2888
[13.01.2026 09:31:32] EventSender | [_handleNewClient] new client: 192.168.0.82
[13.01.2026 09:31:32] internet state | Heap: 2880
[13.01.2026 09:32:17] internet state | Heap: 2888
[13.01.2026 09:32:18] EventSender | [_handleNewClient] new client: 192.168.0.82
[13.01.2026 09:32:18] internet state | Heap: 2880
[13.01.2026 09:41:24] internet state | Heap: 2880
[13.01.2026 09:56:24] internet state | Heap: 2880
[13.01.2026 10:11:25] internet state | Heap: 2880
[13.01.2026 10:26:25] internet state | Heap: 2880
[13.01.2026 10:41:25] internet state | Heap: 2880
[13.01.2026 10:56:25] internet state | Heap: 2880
[13.01.2026 11:11:25] internet state | Heap: 2880
[13.01.2026 11:26:25] internet state | Heap: 2880
[13.01.2026 11:41:24] internet state | Heap: 2880
[13.01.2026 11:56:24] internet state | Heap: 2880
[13.01.2026 12:11:24] internet state | Heap: 2880
[13.01.2026 12:26:24] internet state | Heap: 2880
[13.01.2026 12:41:25] internet state | Heap: 2880
[13.01.2026 12:56:25] internet state | Heap: 2880
[13.01.2026 13:11:25] internet state | Heap: 2880
[13.01.2026 13:26:25] internet state | Heap: 2788
[13.01.2026 13:41:25] internet state | Heap: 2880
[13.01.2026 13:53:10] EventSender | [_handleNewClient] new client: 192.168.0.237
[13.01.2026 13:53:10] internet state | Heap: 2880
[13.01.2026 13:53:13] EventSender | [_handleNewClient] new client: 192.168.0.237
[13.01.2026 13:53:13] internet state | Heap: 2880
[13.01.2026 13:56:25] internet state | Heap: 2880
[13.01.2026 14:11:25] internet state | Heap: 2880
[13.01.2026 14:26:25] internet state | Heap: 2880
[13.01.2026 14:41:24] internet state | Heap: 2848
[13.01.2026 14:56:24] internet state | Heap: 2788
[13.01.2026 15:11:24] internet state | Heap: 2880
[13.01.2026 15:19:13] internet state | Heap: 2812
[13.01.2026 15:19:14] EventSender | [_handleNewClient] new client: 192.168.0.82
[13.01.2026 15:19:14] internet state | Heap: 2880

Maybe there are some IPv6 problem after all?

I am not sure how it is supposed to work exactly but normaly when there are IP4 problems ping is an easy way to try if I can reach an adress.

Tried it from my Windows cmd and tested the IPv6 DNS that my router is supposed to use. DNS should usually be reachable from all network.
ping 2001:2000::2 responded on my Windows computer.
On my HA server it’s doesnt seem to work.

ping 2001:2000:2 is not responding.
It should I guess if IPv6 routing was working correctly?

I am using HAOS on a VM on my unraid server. Could it be the problem? No idea if my VM is passing through IPv6?

My god! Many thanks for your help in pointing me in the right direction!
I realised I was not able to ping any IPv6 adresses from my unraid system either! Turned out I had ONLY IPv4 turned on in unraid settings. Changed to IPv4 + IPv6 and voila! It works!

So easy to fix but so hard to find if you are not used to IPv6 :slight_smile:

1 Like

well it should be something like

Windows
ping -a -6 YOUR:IP:v6

Linux
ping -6 YOUR:IP:v6
and
host YOUR:IP:v6

From your Logs (after putting in USB mode), the OTBR is running fine.
Your HA has a fd30:blah blah which is likely formed from the OTBR’s Route Advertisements, so I think your OTBR is fine.

“Checking network connectivity” I think means that the Companion App is not getting mDNS advertisements from which it needs to connect to the device via Thread networking. This is either due to the phone being on the wrong LAN network, or the Thread credentials it gave to the device is incorrect.

It was my unraid server settings.
Ip6 was turned off on the server where I run the HAOS VM.

Didn’t even think about to check that.
Setup unraid server maybe 10 years ago. At that time IP6 wasn’t a thing and i probably just set it at IP4 only…

Turned on IP4 + IP6 and everything started to work. :grin:

I’m scratching my head a little bit … if the HA VM is “bridged” to the host’s Ethernet interface, then not clear how enabling IPv6 on the unraid server host would make a difference, but anyway, glad its working.

Well HA needs access to IP6 and unraid that HA is running on didn’t have access to IP6. I guess that matters.
VM is bridged btw.