So the failure cascade usually looks like this:
00:02:22.106 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:0, cmd:PROP_VALUE_IS, key:STREAM_RAW, len:22, rssi:-89 ...
00:02:22.106 [D] P-SpinelDrive-: ... noise:-128, flags:0x0000, channel:15, lqi:255, timestamp:10648296763, rxerr:0
00:02:22.526 [W] P-RadioSpinel-: Wait for response timeout
00:02:22.526 [W] P-RadioSpinel-: RCP failure detected
00:02:22.526 [W] P-RadioSpinel-: Trying to recover (1/2)
00:02:22.526 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:1, cmd:PROP_VALUE_SET, key:PHY_ENABLED, enabled:1
00:02:22.526 [D] P-RadioSpinel-: Wait response: tid=1 key=32
00:02:22.537 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:1, cmd:PROP_VALUE_IS, key:PHY_ENABLED, enabled:1
00:02:22.537 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:2, cmd:PROP_VALUE_SET, key:MAC_15_4_PANID, panid:0x163e
00:02:22.537 [D] P-RadioSpinel-: Wait response: tid=2 key=54
00:02:22.547 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:2, cmd:PROP_VALUE_IS, key:MAC_15_4_PANID, panid:0x163e
00:02:22.547 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:3, cmd:PROP_VALUE_SET, key:MAC_15_4_SADDR, saddr:0x6c00
00:02:22.547 [D] P-RadioSpinel-: Wait response: tid=3 key=53
00:02:22.558 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:3, cmd:PROP_VALUE_IS, key:MAC_15_4_SADDR, saddr:0x6c00
00:02:22.558 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:4, cmd:PROP_VALUE_SET, key:MAC_15_4_LADDR, laddr:deab36b616fd175b
00:02:22.558 [D] P-RadioSpinel-: Wait response: tid=4 key=52
00:02:22.569 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:4, cmd:PROP_VALUE_IS, key:MAC_15_4_LADDR, laddr:deab36b616fd175b
00:02:22.569 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:5, cmd:PROP_VALUE_SET, key:PHY_CHAN, channel:15
00:02:22.569 [D] P-RadioSpinel-: Wait response: tid=5 key=33
00:02:22.581 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:5, cmd:PROP_VALUE_IS, key:PHY_CHAN, channel:15
00:02:22.581 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:6, cmd:PROP_VALUE_SET, key:RCP_MAC_KEY, keyIdMode:8, keyId:3, prevKey:***, currKey:***, nextKey:***
00:02:22.581 [D] P-RadioSpinel-: Wait response: tid=6 key=2048
00:02:22.591 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:6, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
00:02:22.591 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:7, cmd:PROP_VALUE_SET, key:RCP_MAC_FRAME_COUNTER, counter:598077
00:02:22.591 [D] P-RadioSpinel-: Wait response: tid=7 key=2049
00:02:22.602 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:7, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
00:02:22.602 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:8, cmd:PROP_VALUE_INSERT, key:MAC_SRC_MATCH_SHORT_ADDRESSES, saddr:0x6c03
00:02:22.602 [D] P-RadioSpinel-: Wait response: tid=8 key=4868
00:02:22.613 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:8, cmd:PROP_VALUE_INSERTED, key:MAC_SRC_MATCH_SHORT_ADDRESSES, saddr:0x6c03
00:02:22.613 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:9, cmd:PROP_VALUE_INSERT, key:MAC_SRC_MATCH_EXTENDED_ADDRESSES, extaddr:e21cff298298b772
00:02:22.613 [D] P-RadioSpinel-: Wait response: tid=9 key=4869
00:02:22.624 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:9, cmd:PROP_VALUE_INSERTED, key:MAC_SRC_MATCH_EXTENDED_ADDRESSES, extaddr:e21cff298298b772
00:02:22.624 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:10, cmd:PROP_VALUE_INSERT, key:MAC_SRC_MATCH_EXTENDED_ADDRESSES, extaddr:bacbaf798b9af2ca
00:02:22.624 [D] P-RadioSpinel-: Wait response: tid=10 key=4869
00:02:22.636 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:10, cmd:PROP_VALUE_INSERTED, key:MAC_SRC_MATCH_EXTENDED_ADDRESSES, extaddr:bacbaf798b9af2ca
00:02:22.636 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:11, cmd:PROP_VALUE_INSERT, key:MAC_SRC_MATCH_EXTENDED_ADDRESSES, extaddr:62a98175d4b923cb
00:02:22.636 [D] P-RadioSpinel-: Wait response: tid=11 key=4869
00:02:22.646 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:11, cmd:PROP_VALUE_INSERTED, key:MAC_SRC_MATCH_EXTENDED_ADDRESSES, extaddr:62a98175d4b923cb
00:02:22.646 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:12, cmd:PROP_VALUE_INSERT, key:MAC_SRC_MATCH_EXTENDED_ADDRESSES, extaddr:ce2b9aa6fa620171
00:02:22.646 [D] P-RadioSpinel-: Wait response: tid=12 key=4869
00:02:22.657 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:12, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:NOMEM
00:02:22.657 [W] P-RadioSpinel-: Error processing result: NoBufs
00:02:22.657 [W] P-RadioSpinel-: Error waiting response: NoBufs
00:02:22.658 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:13, cmd:PROP_VALUE_INSERT, key:MAC_SRC_MATCH_EXTENDED_ADDRESSES, extaddr:ce2b9aa6fa620171
00:02:22.658 [D] P-RadioSpinel-: Wait response: tid=13 key=4869
00:02:22.668 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:13, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:NOMEM
00:02:22.668 [W] P-RadioSpinel-: Error processing result: NoBufs
00:02:22.668 [W] P-RadioSpinel-: Error waiting response: NoBufs
00:02:22.668 [C] Platform------: RestoreProperties() at radio_spinel.cpp:2218: Failure
00:02:22.669 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:14, cmd:PROP_VALUE_INSERT, key:MAC_SRC_MATCH_EXTENDED_ADDRESSES, extaddr:ce2b9aa6fa620171
00:02:22.669 [D] P-RadioSpinel-: Wait response: tid=14 key=4869
00:02:22.679 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:14, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:NOMEM
00:02:22.679 [W] P-RadioSpinel-: Error processing result: NoBufs
00:02:22.679 [W] P-RadioSpinel-: Error waiting response: NoBufs
[12:54:27] WARNING: e[33motbr-agent exited with code 1 (by signal 0).e[0m
otbr-ingress-deny-src
otbr-ingress-deny-src-swap
otbr-ingress-allow-dst
otbr-ingress-allow-dst-swap
[12:54:27] INFO: e[32mOTBR firewall teardown completed.e[0m
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service otbr-agent-rest-discovery: stopping
s6-rc: info: service otbr-agent-rest-discovery successfully stopped
s6-rc: info: service otbr-agent-configure: stopping
s6-rc: info: service otbr-agent-configure successfully stopped
s6-rc: info: service otbr-agent: stopping
s6-rc: info: service otbr-agent successfully stopped
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
2025/11/09 12:54:27 socat[79] W exiting on signal 15
s6-rc: info: service banner successfully stopped
Default: mDNSResponder (Engineering Build) (Oct 28 2025 07:42:47) stopping
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
[12:54:27] INFO: e[32mmDNS ended with exit code 4 (signal 0)...e[0m
s6-rc: info: service mdns successfully stopped
[12:54:31] INFO: e[32mThe otbr-web is disabled.e[0m
[12:54:31] INFO: e[32mEnabled socat-otbr-tcp.e[0m
Then the OTBR add-on tries to restart and runs into the next crash
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 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
[12:54:31] INFO: e[32mStarting mDNS Responder...e[0m
Default: mDNSResponder (Engineering Build) (Oct 28 2025 07:42:47) starting
s6-rc: info: service legacy-cont-init successfully started
[12:54:31] INFO: e[32mStarting socat TCP client for OTBR daemon...e[0m
e[34m-----------------------------------------------------------e[0m
e[34m Add-on: OpenThread Border Routere[0m
e[34m OpenThread Border Router add-one[0m
e[34m-----------------------------------------------------------e[0m
e[34m Add-on version: 2.15.0e[0m
s6-rc: info: service socat-otbr-tcp successfully started
e[32m You are running the latest version of this add-on.e[0m
e[34m System: Home Assistant OS 16.3 (aarch64 / yellow)e[0m
e[34m Home Assistant Core: 2025.11.1e[0m
e[34m Home Assistant Supervisor: 2025.11.1e[0m
e[34m-----------------------------------------------------------e[0m
e[34m Please, share the above information when looking for helpe[0m
e[34m or support in, e.g., GitHub, forums or the Discord chat.e[0m
e[34m-----------------------------------------------------------e[0m
s6-rc: info: service banner successfully started
s6-rc: info: service otbr-agent: starting
[12:54:33] INFO: e[32mMigrating OTBR settings if needed...e[0m
2025-11-09 12:54:33 homeassistant asyncio[241] DEBUG Using selector: EpollSelector
2025-11-09 12:54:33 homeassistant zigpy.serial[241] DEBUG Opening a serial connection to '/tmp/ttyOTBR' (baudrate=460800, xonxoff=False, rtscts=False)
2025-11-09 12:54:33 homeassistant zigpy.serial[241] DEBUG Connection made: SerialTransport(<_UnixSelectorEventLoop running=True closed=False debug=False>, <universal_silabs_flasher.spinel.SpinelProtocol object at 0x7fa3910210>, Serial<id=0x7fa3690af0, open=True>(port='/tmp/ttyOTBR', baudrate=460800, bytesize=8, parity='N', stopbits=1, timeout=0, xonxoff=False, rtscts=False, dsrdtr=False))
2025-11-09 12:54:33 homeassistant universal_silabs_flasher.spinel[241] 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')
2025-11-09 12:54:33 homeassistant universal_silabs_flasher.spinel[241] DEBUG Sending data b'~\x83\x02\x08\xbc\x9a~'
2025-11-09 12:54:33 homeassistant universal_silabs_flasher.spinel[241] DEBUG Decoded HDLC frame: HDLCLiteFrame(data=b'\x83\x06\x08\xbc\x8d~\xff\xfe#\x9e<')
2025-11-09 12:54:33 homeassistant universal_silabs_flasher.spinel[241] DEBUG Parsed frame SpinelFrame(header=SpinelHeader(transaction_id=3, network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_IS: 6>, data=b'\x08\xbc\x8d~\xff\xfe#\x9e<')
2025-11-09 12:54:33 homeassistant universal_silabs_flasher.spinel[241] DEBUG Decoded HDLC frame: HDLCLiteFrame(data=b'\x80\x06q\x16\x00k\x98\xfc>\x16\x00l\x05l\rZu\x00\x00\x03\x04\x1e\t\xdd\xc8\x8a!\xb2\x80\x00\x00\n\x00\x0f\xff.\xf7\x16{\x02\x00\x00\x00\x01\x00\x00\x05\x00\x03q\xb2\x08\x00')
2025-11-09 12:54:33 homeassistant universal_silabs_flasher.spinel[241] DEBUG Parsed frame SpinelFrame(header=SpinelHeader(transaction_id=0, network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_IS: 6>, data=b'q\x16\x00k\x98\xfc>\x16\x00l\x05l\rZu\x00\x00\x03\x04\x1e\t\xdd\xc8\x8a!\xb2\x80\x00\x00\n\x00\x0f\xff.\xf7\x16{\x02\x00\x00\x00\x01\x00\x00\x05\x00\x03q\xb2\x08\x00')
2025-11-09 12:54:33 homeassistant zigpy.serial[241] DEBUG Waiting for serial port to close
2025-11-09 12:54:33 homeassistant zigpy.serial[241] DEBUG Connection lost: None
Adapter settings file /data/thread/0_bc8d7efffe239e3c.data is the most recently used, skipping
[12:54:33] INFO: e[32mStarting otbr-agent...e[0m
[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:///tmp/ttyOTBR?uart-baudrate=460800&uart-init-deassert
[NOTE]-AGENT---: Radio URL: trel://end0
[NOTE]-ILS-----: Infra link selected: end0
tiocmbic: Inappropriate ioctl for device
[INFO]-RCP_HOS-: OpenThread log level changed to 5
49d.20:00:25.888 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:0, cmd:RESET
49d.20:00:25.888 [D] P-SpinelDrive-: Waiting response: key=0
49d.20:00:25.888 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:0, cmd:PROP_VALUE_IS, key:STREAM_RAW, len:22, rssi:-91 ...
49d.20:00:25.888 [D] P-SpinelDrive-: ... noise:-128, flags:0x0000, channel:15, lqi:255, timestamp:10655051590, rxerr:0
49d.20:00:25.888 [W] P-SpinelDrive-: Error processing frame: Drop
49d.20:00:25.898 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:0, cmd:PROP_VALUE_IS, key:STREAM_RAW, len:22, rssi:-88 ...
49d.20:00:25.898 [D] P-SpinelDrive-: ... noise:-128, flags:0x0000, channel:15, lqi:255, timestamp:10655121458, rxerr:0
49d.20:00:25.898 [W] P-SpinelDrive-: Error processing frame: Drop
49d.20:00:27.890 [W] P-SpinelDrive-: Wait for response timeout
49d.20:00:27.890 [I] P-SpinelDrive-: co-processor self reset successfully
49d.20:00:27.890 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:1, cmd:PROP_VALUE_GET, key:PROTOCOL_VERSION
49d.20:00:27.890 [D] P-SpinelDrive-: Waiting response: key=1
49d.20:00:29.891 [W] P-SpinelDrive-: Wait for response timeout
49d.20:00:29.891 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:1, cmd:PROP_VALUE_GET, key:PROTOCOL_VERSION
49d.20:00:29.891 [D] P-SpinelDrive-: Waiting response: key=1
49d.20:00:31.893 [W] P-SpinelDrive-: Wait for response timeout
49d.20:00:31.893 [C] Platform------: Init() at spinel_driver.cpp:83: Failure
49d.20:00:31.893 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:1, cmd:PROP_VALUE_GET, key:PROTOCOL_VERSION
49d.20:00:31.893 [D] P-SpinelDrive-: Waiting response: key=1
49d.20:00:33.895 [W] P-SpinelDrive-: Wait for response timeout
[12:54:41] WARNING: e[33motbr-agent exited with code 1 (by signal 0).e[0m
otbr-ingress-deny-src
otbr-ingress-deny-src-swap
otbr-ingress-allow-dst
otbr-ingress-allow-dst-swap
[12:54:41] INFO: e[32mOTBR firewall teardown completed.e[0m
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
/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.
Default: mDNSResponder (Engineering Build) (Oct 28 2025 07:42:47) stopping
2025/11/09 12:54:41 socat[79] W exiting on signal 15
s6-rc: info: service banner successfully stopped
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
[12:54:41] INFO: e[32mmDNS ended with exit code 4 (signal 0)...e[0m
s6-rc: info: service mdns successfully stopped
[12:54:45] INFO: e[32mThe otbr-web is disabled.e[0m
[12:54:45] INFO: e[32mEnabled socat-otbr-tcp.e[0m
This repeats a few times until the module is not trying to restart anymore