I know these Matter/OTBR issues are tiresome (at least they are for me), however I’m having an issue with the OTBR after updating.
Setup
HAOS virtualized on xcp-ng
- Core2026.2.1
- Supervisor2026.02.1
- Operating System17.0
- Frontend20260107.2
OTBR add-on 2.16.3
Thread Border Router - SLZB-MR3 - EFR32MG24 - SLZBOS - version 3.2.4
When trying to start the OTBR addon I’m getting the following in the logs:
s6-rc: info: service socat-otbr-tcp: starting
s6-rc: info: service mdns: starting
s6-rc: info: service s6rc-oneshot-runner: starting
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 mdns successfully started
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
[00:54:14] INFO: Starting mDNS Responder...
Default: mDNSResponder (Engineering Build) (Feb 11 2026 16:46:22) starting
[00:54:14] INFO: Starting socat TCP client for OTBR daemon...
-----------------------------------------------------------
Add-on: OpenThread Border Router
OpenThread Border Router add-on
-----------------------------------------------------------
Add-on version: 2.16.3
You are running the latest version of this add-on.
System: Home Assistant OS 17.0 (amd64 / qemux86-64)
Home Assistant Core: 2026.2.1
Home Assistant Supervisor: 2026.02.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 socat-otbr-tcp successfully started
s6-rc: info: service otbr-agent: starting
[00:54:14] INFO: Setup OTBR firewall...
[00:54:14] INFO: Migrating OTBR settings if needed...
2026-02-12 00:54:15 ha asyncio[257] DEBUG Using selector: EpollSelector
2026-02-12 00:54:15 ha zigpy.serial[257] DEBUG Opening a serial connection to '/tmp/ttyOTBR' (baudrate=460800, xonxoff=False, rtscts=False)
2026-02-12 00:54:15 ha serialx.platforms.serial_posix[257] DEBUG Configuring serial port '/tmp/ttyOTBR'
2026-02-12 00:54:15 ha serialx.platforms.serial_posix[257] 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-02-12 00:54:15 ha serialx.platforms.serial_posix[257] DEBUG Setting low latency mode: True
2026-02-12 00:54:15 ha serialx.platforms.serial_posix[257] DEBUG Device is not a serial port, cannot set low latency
2026-02-12 00:54:15 ha serialx.platforms.serial_posix[257] DEBUG Setting modem pins: ModemPins[!dtr !rts]
2026-02-12 00:54:15 ha serialx.platforms.serial_posix[257] DEBUG TIOCMBIC: 0x00000006
2026-02-12 00:54:15 ha serialx.platforms.serial_posix[257] DEBUG Device is not a serial port, cannot set modem pins
2026-02-12 00:54:15 ha zigpy.serial[257] DEBUG Connection made: <serialx.platforms.serial_posix.PosixSerialTransport object at 0x7f3825ea00d0>
2026-02-12 00:54:15 ha universal_silabs_flasher.spinel[257] DEBUG Sending frame SpinelFrame(header=SpinelHeader(transaction_id=0, network_link_id=0, flag=2), command_id=<CommandID.RESET: 1>, data=b'\x02')
2026-02-12 00:54:15 ha universal_silabs_flasher.spinel[257] DEBUG Sending data b'~\x80\x01\x02\xea\xf0~'
2026-02-12 00:54:15 ha serialx.descriptor_transport[257] DEBUG Immediately writing b'~\x80\x01\x02\xea\xf0~'
2026-02-12 00:54:15 ha serialx.descriptor_transport[257] DEBUG Sent 7 of 7 bytes
2026-02-12 00:54:17 ha universal_silabs_flasher.spinel[257] DEBUG Device did not respond to reset, continuing
2026-02-12 00:54:17 ha universal_silabs_flasher.spinel[257] 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-02-12 00:54:17 ha universal_silabs_flasher.spinel[257] DEBUG Sending data b'~\x83\x02\x08\xbc\x9a~'
2026-02-12 00:54:17 ha serialx.descriptor_transport[257] DEBUG Immediately writing b'~\x83\x02\x08\xbc\x9a~'
2026-02-12 00:54:17 ha serialx.descriptor_transport[257] DEBUG Sent 7 of 7 bytes
2026-02-12 00:54:19 ha universal_silabs_flasher.spinel[257] DEBUG Failed to send SpinelFrame(header=SpinelHeader(network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b'\x08'), trying again in 0.10s (attempt 1 of 3)
2026-02-12 00:54:19 ha universal_silabs_flasher.spinel[257] 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-02-12 00:54:19 ha universal_silabs_flasher.spinel[257] DEBUG Sending data b'~\x83\x02\x08\xbc\x9a~'
2026-02-12 00:54:19 ha serialx.descriptor_transport[257] DEBUG Immediately writing b'~\x83\x02\x08\xbc\x9a~'
2026-02-12 00:54:19 ha serialx.descriptor_transport[257] DEBUG Sent 7 of 7 bytes
2026-02-12 00:54:21 ha universal_silabs_flasher.spinel[257] DEBUG Failed to send SpinelFrame(header=SpinelHeader(network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b'\x08'), trying again in 0.10s (attempt 2 of 3)
2026-02-12 00:54:21 ha universal_silabs_flasher.spinel[257] 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-02-12 00:54:21 ha universal_silabs_flasher.spinel[257] DEBUG Sending data b'~\x83\x02\x08\xbc\x9a~'
2026-02-12 00:54:21 ha serialx.descriptor_transport[257] DEBUG Immediately writing b'~\x83\x02\x08\xbc\x9a~'
2026-02-12 00:54:21 ha serialx.descriptor_transport[257] DEBUG Sent 7 of 7 bytes
2026-02-12 00:54:23 ha universal_silabs_flasher.spinel[257] DEBUG Failed to send SpinelFrame(header=SpinelHeader(network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b'\x08'), trying again in 0.10s (attempt 3 of 3)
2026-02-12 00:54:23 ha serialx.descriptor_transport[257] DEBUG Closing at the request of the application
2026-02-12 00:54:23 ha zigpy.serial[257] DEBUG Waiting for serial port to close
2026-02-12 00:54:23 ha serialx.descriptor_transport[257] DEBUG Closing connection: None
2026-02-12 00:54:23 ha serialx.descriptor_transport[257] DEBUG Closing file descriptor 7
2026-02-12 00:54:23 ha serialx.descriptor_transport[257] DEBUG Calling protocol `connection_lost` with exc=None
2026-02-12 00:54:23 ha zigpy.serial[257] DEBUG Connection lost: None
Traceback (most recent call last):
File "/usr/local/lib/python3.13/dist-packages/universal_silabs_flasher/spinel.py", line 260, in send_frame
return await asyncio.shield(future)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncio.exceptions.CancelledError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/bin/migrate_otbr_settings.py", line 228, in <module>
asyncio.run(main())
~~~~~~~~~~~^^^^^^^^
File "/usr/lib/python3.13/asyncio/runners.py", line 195, in run
return runner.run(main)
~~~~~~~~~~^^^^^^
File "/usr/lib/python3.13/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "/usr/lib/python3.13/asyncio/base_events.py", line 725, in run_until_complete
return future.result()
~~~~~~~~~~~~~^^
File "/usr/local/bin/migrate_otbr_settings.py", line 156, in main
hwaddr = await get_adapter_hardware_addr(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<3 lines>...
)
^
File "/usr/local/bin/migrate_otbr_settings.py", line 103, in get_adapter_hardware_addr
rsp = await protocol.send_command(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<2 lines>...
)
^
File "/usr/local/lib/python3.13/dist-packages/universal_silabs_flasher/spinel.py", line 292, in send_command
return await self.send_frame(frame, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/dist-packages/universal_silabs_flasher/spinel.py", line 259, in send_frame
async with asyncio_timeout(timeout):
~~~~~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.13/asyncio/timeouts.py", line 116, in __aexit__
raise TimeoutError from exc_val
TimeoutError
[00:54:23] WARNING: otbr-agent exited with code 1 (by signal 0).
Chain OTBR_FORWARD_INGRESS (0 references)
target prot opt source destination
DROP all -- anywhere anywhere PKTTYPE = unicast
DROP all -- anywhere anywhere match-set otbr-ingress-deny-src src
ACCEPT all -- anywhere anywhere match-set otbr-ingress-allow-dst dst
DROP all -- anywhere anywhere PKTTYPE = unicast
ACCEPT all -- anywhere anywhere
otbr-ingress-deny-src
otbr-ingress-deny-src-swap
otbr-ingress-allow-dst
otbr-ingress-allow-dst-swap
Chain OTBR_FORWARD_EGRESS (0 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere
[00:54:23] INFO: OTBR firewall teardown completed.
s6-svlisten1: fatal: /run/s6-rc/servicedirs/otbr-agent failed permanently or its supervisor died
s6-rc: warning: unable to start service otbr-agent: command exited 1
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service banner: stopping
s6-rc: info: service socat-otbr-tcp: stopping
s6-rc: info: service mdns: stopping
Default: mDNSResponder (Engineering Build) (Feb 11 2026 16:46:22) stopping
s6-rc: info: service banner successfully stopped
2026/02/12 00:54:23 socat[88] W exiting on signal 15
/run/s6/basedir/scripts/rc.init: warning: s6-rc failed to properly bring all the services up! Check your logs (in /run/uncaught-logs/current if you have in-container logging) for more information.
/run/s6/basedir/scripts/rc.init: fatal: stopping the container.
s6-rc: info: service socat-otbr-tcp successfully stopped
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped
[00:54:23] INFO: mDNS ended with exit code 4 (signal 0)...
s6-rc: info: service mdns successfully stopped
Honestly I’m not too sure where to start with this one. Any help or suggestion would be great. Download firmware?? Thanks for any suggestions
Did try downgrading slzb-mr3 firmware SLZBOS 3.2.4->3.2.0 however that didn’t make a difference either.
