I have Nabu_Casa_SkyConnect_v1 install on * Home Assistant OS * 2025.9.4
But OTBR will not start…
(I have test USB SkyConnect on other test HASS, and is working.)
Have done fresh install of SkyConnect and fw with thread.
I have addon “UniFi Network Application” and Dezonz as well.
I have test different port as 9080&9081
Help, what is the problem
Logg say
-----------------------------------------------------------
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 16.2 (amd64 / generic-x86-64)
Home Assistant Core: 2025.9.4
Home Assistant Supervisor: 2025.09.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 universal-silabs-flasher: starting
[19:11:54] INFO: Flashing firmware is disabled
s6-rc: info: service universal-silabs-flasher successfully started
s6-rc: info: service otbr-agent: starting
[19:11:55] INFO: Setup OTBR firewall...
[19:11:55] WARNING: Custom OpenThread REST API port is not supported. Using 8081.
[19:11:55] 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
49d.17:12:15.296 [C] P-SpinelDrive-: Software reset co-processor successfully
00:00:00.033 [N] RoutingManager: BR ULA prefix: fd23:6f:9534::/48 (loaded)
00:00:00.033 [N] RoutingManager: Local on-link prefix: fdde:ad00:beef:cafe::/64
[ERR ]-REST----: InitializeListenFd error bind : Address already in use
[EMERG]-REST----: FAILED /usr/src/ot-br-posix/src/rest/rest_web_server.cpp:173 - otbr rest server init error
[19:11:55] WARNING: otbr-agent exited with code 255 (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
[19:11:55] 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 universal-silabs-flasher: 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) (Jan 14 2025 21:04:03) stopping
s6-rc: info: service universal-silabs-flasher successfully stopped
s6-rc: info: service banner: stopping
s6-rc: info: service banner 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
[19:11:55] INFO: mDNS ended with exit code 4 (signal 0)...
s6-rc: info: service mdns successfully stopped
I have test to stop addon deconz
Then is possible to start OpenThread Border Router✅
But i have change port, or is not possibel to change port on OpenThread Border Router
I’m kinda working from memory, but I think the port config is used only to enable the OTBR’s Webserver port 8080, not so much to change the port number. Anyway according to the WARNING
it is using 8081 anyway, so I guess changing the port number is not actually supported.
For what its worth…
what I think is happening is that HA is setting up a run script for the AddOn to run an otbr-agent (which handles the API) and there appears to be a parameter setting called --rest-listen-port for the otbr-agent that can set the port to a different value (take a look here). But HA is not making use of this parameter from the AddOn’s run script and as the error shows, it only uses 8081. My only recommendation is to post an issue to the AddOn’s GitHub and see what the developer’s say, but I see you already have done this… so maybe include this parameter and run script to the issue and see what they say.
-----------------------------------------------------------
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 16.2 (amd64 / generic-x86-64)
Home Assistant Core: 2025.9.4
Home Assistant Supervisor: 2025.09.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 universal-silabs-flasher: starting
[08:04:11] INFO: Flashing firmware is disabled
s6-rc: info: service universal-silabs-flasher successfully started
s6-rc: info: service otbr-agent: starting
[08:04:12] INFO: Setup OTBR firewall...
[08:04:12] WARNING: Custom OpenThread REST API port is not supported. Using 8081.
[08:04:12] 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
51d.06:04:30.273 [C] P-SpinelDrive-: Software reset co-processor successfully
00:00:00.049 [N] RoutingManager: BR ULA prefix: fd23:6f:9534::/48 (loaded)
00:00:00.049 [N] RoutingManager: Local on-link prefix: fdd0:cd17:492d:a4d0::/64
[ERR ]-REST----: InitializeListenFd error bind : Address already in use
[EMERG]-REST----: FAILED /usr/src/ot-br-posix/src/rest/rest_web_server.cpp:173 - otbr rest server init error
[08:04:12] WARNING: otbr-agent exited with code 255 (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
[08:04:12] 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 universal-silabs-flasher: 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) (Jan 14 2025 21:04:03) stopping
s6-rc: info: service universal-silabs-flasher successfully stopped
s6-rc: info: service banner: stopping
s6-rc: info: service banner 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
[08:04:12] INFO: mDNS ended with exit code 4 (signal 0)...
s6-rc: info: service mdns successfully stopped```
The otbr-agent binary does support --rest-listen-port to configure which port the REST API should listen on, but the AddOn currently hardcodes port 8081 and doesn’t allow this to be changed.
Because of that, anyone who needs to run the REST API on a different port is blocked. This also explains the error we see, since the agent only binds to 8081 by default.
Suggestion:
If the AddOn exposed --rest-listen-port as a configurable option in the run script, users could override the port when needed
I am having exactly the same problem. How can I add --rest-listen-port to the run script?
But on my system the port 8081 does not seem to be in use by another service. I used netstat on HA-OS and ss on proxmox to check this. What else could cause this error message: “InitializeListenFd error bind : Address already in use” ???
Hey everyone, I had the same problem and finally found the solution (at least for me). I had n8n configured to use 8081, so my own fault. Now OTBR is working fine. After all I just sorted out one process after the other till
netstat -tulpn | grep -E ' :8081\b'
was showing no process blocking 8081 anymore. Maybe this can help anybody else? Good luck!