[SOLVED] Failing to install OpenThread Border Router with Sonoff MG24 (HAOS)

Still very new to HA. I have Home Assistant OS (2026.2.1) running in Proxmox (VM), so far with a Zigbee (ConBee II). I’m now trying to add Threads support with a MG24 dongle, and can’t figure it out.

I’ve installed the OpenThread Border Router app, Thread and OpenThread Border Router in Integrations. When I try to put http://core-openthread-border-router:8081 as REST API URL, it fails to connect, and I see a bunch of errors in the app’s log.

Default: mDNSResponder (Engineering Build) (Feb  3 2026 18:11:45) starting
-----------------------------------------------------------
 Add-on: OpenThread Border Router
 OpenThread Border Router add-on
-----------------------------------------------------------
 Add-on version: 2.16.1
 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 otbr-agent: starting
[18:53:29] INFO: Setup OTBR firewall...
[18:53:29] INFO: Migrating OTBR settings if needed...
2026-02-09 18:53:30 homeassistant asyncio[237] DEBUG Using selector: EpollSelector
2026-02-09 18:53:30 homeassistant zigpy.serial[237] DEBUG Opening a serial connection to '/dev/serial/by-id/usb-SONOFF_SONOFF_Dongle_Plus_MG24_b89b78917a8bef11975f1fccef8776e9-if00-port0' (baudrate=460800, xonxoff=False, rtscts=True)
2026-02-09 18:53:30 homeassistant serialx.platforms.serial_posix[237] DEBUG Configuring serial port '/dev/serial/by-id/usb-SONOFF_SONOFF_Dongle_Plus_MG24_b89b78917a8bef11975f1fccef8776e9-if00-port0'
2026-02-09 18:53:30 homeassistant serialx.platforms.serial_posix[237] DEBUG Configuring serial port: [0, 0, 2147486896, 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-09 18:53:30 homeassistant serialx.platforms.serial_posix[237] DEBUG Setting low latency mode: True
2026-02-09 18:53:30 homeassistant serialx.platforms.serial_posix[237] DEBUG Setting modem pins: ModemPins[dtr rts]
2026-02-09 18:53:30 homeassistant serialx.platforms.serial_posix[237] DEBUG Setting TIOCMBIS: 0x00000006
2026-02-09 18:53:30 homeassistant zigpy.serial[237] DEBUG Connection made: <serialx.platforms.serial_posix.PosixSerialTransport object at 0x7f6def49c190>
2026-02-09 18:53:30 homeassistant universal_silabs_flasher.spinel[237] 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-09 18:53:30 homeassistant universal_silabs_flasher.spinel[237] DEBUG Sending data b'~\x80\x01\x02\xea\xf0~'
2026-02-09 18:53:30 homeassistant serialx.descriptor_transport[237] DEBUG Immediately writing b'~\x80\x01\x02\xea\xf0~'
2026-02-09 18:53:30 homeassistant serialx.descriptor_transport[237] DEBUG Sent 7 of 7 bytes
2026-02-09 18:53:32 homeassistant universal_silabs_flasher.spinel[237] DEBUG Device did not respond to reset, continuing
2026-02-09 18:53:32 homeassistant universal_silabs_flasher.spinel[237] 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-09 18:53:32 homeassistant universal_silabs_flasher.spinel[237] DEBUG Sending data b'~\x83\x02\x08\xbc\x9a~'
2026-02-09 18:53:32 homeassistant serialx.descriptor_transport[237] DEBUG Immediately writing b'~\x83\x02\x08\xbc\x9a~'
2026-02-09 18:53:32 homeassistant serialx.descriptor_transport[237] DEBUG Sent 7 of 7 bytes
2026-02-09 18:53:34 homeassistant universal_silabs_flasher.spinel[237] 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-09 18:53:34 homeassistant universal_silabs_flasher.spinel[237] 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-09 18:53:34 homeassistant universal_silabs_flasher.spinel[237] DEBUG Sending data b'~\x83\x02\x08\xbc\x9a~'
2026-02-09 18:53:34 homeassistant serialx.descriptor_transport[237] DEBUG Immediately writing b'~\x83\x02\x08\xbc\x9a~'
2026-02-09 18:53:34 homeassistant serialx.descriptor_transport[237] DEBUG Sent 7 of 7 bytes
2026-02-09 18:53:36 homeassistant universal_silabs_flasher.spinel[237] 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-09 18:53:36 homeassistant universal_silabs_flasher.spinel[237] 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-09 18:53:36 homeassistant universal_silabs_flasher.spinel[237] DEBUG Sending data b'~\x83\x02\x08\xbc\x9a~'
2026-02-09 18:53:36 homeassistant serialx.descriptor_transport[237] DEBUG Immediately writing b'~\x83\x02\x08\xbc\x9a~'
2026-02-09 18:53:36 homeassistant serialx.descriptor_transport[237] DEBUG Sent 7 of 7 bytes
2026-02-09 18:53:38 homeassistant universal_silabs_flasher.spinel[237] 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-09 18:53:38 homeassistant serialx.descriptor_transport[237] DEBUG Closing at the request of the application
2026-02-09 18:53:38 homeassistant zigpy.serial[237] DEBUG Waiting for serial port to close
2026-02-09 18:53:38 homeassistant serialx.descriptor_transport[237] DEBUG Closing connection: None
2026-02-09 18:53:38 homeassistant serialx.descriptor_transport[237] DEBUG Closing file descriptor 7
2026-02-09 18:54:08 homeassistant serialx.descriptor_transport[237] DEBUG Calling protocol `connection_lost` with exc=None
2026-02-09 18:54:08 homeassistant zigpy.serial[237] 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 223, 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 154, in main
    hwaddr = await get_adapter_hardware_addr(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<3 lines>...
    )
    ^
  File "/usr/local/bin/migrate_otbr_settings.py", line 101, 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
[18:54:08] 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            
[18:54:08] 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
/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 banner: stopping
s6-rc: info: service mdns: stopping
s6-rc: info: service banner successfully stopped
Default: mDNSResponder (Engineering Build) (Feb  3 2026 18:11:45) stopping
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
[18:54:08] INFO: mDNS ended with exit code 4 (signal 0)...
s6-rc: info: service mdns successfully stopped
[18:54:12] INFO: Stable mode, enabling mDNSResponder.
[18:54:12] INFO: The otbr-web is disabled.
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
[18:54:12] INFO: Starting mDNS Responder...
Default: mDNSResponder (Engineering Build) (Feb  3 2026 18:11:45) starting
-----------------------------------------------------------
 Add-on: OpenThread Border Router
 OpenThread Border Router add-on
-----------------------------------------------------------
 Add-on version: 2.16.1
 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 otbr-agent: starting
[18:54:12] INFO: Setup OTBR firewall...
[18:54:12] INFO: Migrating OTBR settings if needed...
2026-02-09 18:54:12 homeassistant asyncio[238] DEBUG Using selector: EpollSelector
2026-02-09 18:54:12 homeassistant zigpy.serial[238] DEBUG Opening a serial connection to '/dev/serial/by-id/usb-SONOFF_SONOFF_Dongle_Plus_MG24_b89b78917a8bef11975f1fccef8776e9-if00-port0' (baudrate=460800, xonxoff=False, rtscts=True)
2026-02-09 18:54:12 homeassistant serialx.platforms.serial_posix[238] DEBUG Configuring serial port '/dev/serial/by-id/usb-SONOFF_SONOFF_Dongle_Plus_MG24_b89b78917a8bef11975f1fccef8776e9-if00-port0'
2026-02-09 18:54:12 homeassistant serialx.platforms.serial_posix[238] DEBUG Configuring serial port: [0, 0, 2147486896, 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-09 18:54:12 homeassistant serialx.platforms.serial_posix[238] DEBUG Setting low latency mode: True
2026-02-09 18:54:12 homeassistant serialx.platforms.serial_posix[238] DEBUG Setting modem pins: ModemPins[dtr rts]
2026-02-09 18:54:12 homeassistant serialx.platforms.serial_posix[238] DEBUG Setting TIOCMBIS: 0x00000006
2026-02-09 18:54:12 homeassistant zigpy.serial[238] DEBUG Connection made: <serialx.platforms.serial_posix.PosixSerialTransport object at 0x7f89da09c410>
2026-02-09 18:54:12 homeassistant universal_silabs_flasher.spinel[238] 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-09 18:54:12 homeassistant universal_silabs_flasher.spinel[238] DEBUG Sending data b'~\x80\x01\x02\xea\xf0~'
2026-02-09 18:54:12 homeassistant serialx.descriptor_transport[238] DEBUG Immediately writing b'~\x80\x01\x02\xea\xf0~'
2026-02-09 18:54:12 homeassistant serialx.descriptor_transport[238] DEBUG Sent 7 of 7 bytes
2026-02-09 18:54:14 homeassistant universal_silabs_flasher.spinel[238] DEBUG Device did not respond to reset, continuing
2026-02-09 18:54:14 homeassistant universal_silabs_flasher.spinel[238] 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-09 18:54:14 homeassistant universal_silabs_flasher.spinel[238] DEBUG Sending data b'~\x83\x02\x08\xbc\x9a~'
2026-02-09 18:54:14 homeassistant serialx.descriptor_transport[238] DEBUG Immediately writing b'~\x83\x02\x08\xbc\x9a~'
2026-02-09 18:54:14 homeassistant serialx.descriptor_transport[238] DEBUG Sent 7 of 7 bytes
2026-02-09 18:54:16 homeassistant universal_silabs_flasher.spinel[238] 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-09 18:54:16 homeassistant universal_silabs_flasher.spinel[238] 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-09 18:54:16 homeassistant universal_silabs_flasher.spinel[238] DEBUG Sending data b'~\x83\x02\x08\xbc\x9a~'
2026-02-09 18:54:16 homeassistant serialx.descriptor_transport[238] DEBUG Immediately writing b'~\x83\x02\x08\xbc\x9a~'
2026-02-09 18:54:16 homeassistant serialx.descriptor_transport[238] DEBUG Sent 7 of 7 bytes
2026-02-09 18:54:18 homeassistant universal_silabs_flasher.spinel[238] 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-09 18:54:18 homeassistant universal_silabs_flasher.spinel[238] 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-09 18:54:18 homeassistant universal_silabs_flasher.spinel[238] DEBUG Sending data b'~\x83\x02\x08\xbc\x9a~'
2026-02-09 18:54:18 homeassistant serialx.descriptor_transport[238] DEBUG Immediately writing b'~\x83\x02\x08\xbc\x9a~'
2026-02-09 18:54:18 homeassistant serialx.descriptor_transport[238] DEBUG Sent 7 of 7 bytes
2026-02-09 18:54:20 homeassistant universal_silabs_flasher.spinel[238] 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-09 18:54:20 homeassistant serialx.descriptor_transport[238] DEBUG Closing at the request of the application
2026-02-09 18:54:20 homeassistant zigpy.serial[238] DEBUG Waiting for serial port to close
2026-02-09 18:54:20 homeassistant serialx.descriptor_transport[238] DEBUG Closing connection: None
2026-02-09 18:54:20 homeassistant serialx.descriptor_transport[238] DEBUG Closing file descriptor 7
2026-02-09 18:54:20 homeassistant serialx.descriptor_transport[238] DEBUG Closing at the request of the application
2026-02-09 18:54:20 homeassistant zigpy.serial[238] DEBUG Waiting for serial port to close
2026-02-09 18:54:20 homeassistant serialx.descriptor_transport[238] DEBUG Closing connection: None
2026-02-09 18:54:20 homeassistant serialx.descriptor_transport[238] DEBUG Closing file descriptor 7
2026-02-09 18:54:50 homeassistant serialx.descriptor_transport[238] DEBUG Calling protocol `connection_lost` with exc=None
2026-02-09 18:54:50 homeassistant zigpy.serial[238] 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 223, 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 154, in main
    hwaddr = await get_adapter_hardware_addr(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<3 lines>...
    )
    ^
  File "/usr/local/bin/migrate_otbr_settings.py", line 101, 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
[18:54:50] 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            
[18:54:51] 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 mdns: stopping
Default: mDNSResponder (Engineering Build) (Feb  3 2026 18:11:45) stopping
s6-rc: info: service banner successfully stopped
/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 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
[18:54:51] INFO: mDNS ended with exit code 4 (signal 0)...
s6-rc: info: service mdns successfully stopped
[18:54:54] INFO: Stable mode, enabling mDNSResponder.
[18:54:54] INFO: The otbr-web is disabled.
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
[18:54:54] INFO: Starting mDNS Responder...
Default: mDNSResponder (Engineering Build) (Feb  3 2026 18:11:45) starting

Forgot to mention that I flashed the Openthread firmware, since it had Zigbee by default.

Looks like I finally managed to make it work by disabling flow control.

Now I see a network in Threads, Matter says is online, but still can’t connect the freaking IKEA button (BILRESA).

Hey, i am having exactly the same problem. What did you use as URL for ‘Provide URL for the OpenThread Border Router’s REST API’? I tried http://core-openthread-border-router:8081 but that doesn’t work. I also have the MG24 and flashed it from Zigbee tot Thread.

Hi
@PrintBoaz do you get a JSON with 404 in it in the browser when you open your link? If not, something else is wrong.

@flodolo I had to disable my firewall for pairing, however, still not sure what exactly got blocked (mdns is enabled). Also does the thread integration in HA show the border router correctly?

Hey, I have the same problem as in the initial post.
@flodolo (or anyone else) can you post your yml file of configuration on how you have set it up now. Tried all kind of things, nothing worked. thx

I had this on home assistant yellow,
going into System, Hardware, Home assistant Yellow, configure :
switch between Zigbee or Thread firmware , and redeploying thread resolved this for me
it seems like every time you (re-)deploy / install the open thread border router you have to do this