I’m not sure if this is a bug with Incus or I’m just doing something wrong.
After rebooting my Incus host, I’m not able to access the web UI anymore.
I can fix this by setting core.https_address to something different and then setting it back to the original value.
For example: incus config set core.https_address '10.8.8.2:8001'
And then: incus config set core.https_address '10.8.8.2:8000' (I want to listen on 8000)
Doing this seems to force incus to start listening on the correct address and port.
To give some more info, running ss -lnt4Q before flipping the setting shows the following:
State Local Address:Port
LISTEN *:32803
LISTEN 0.0.0.0:22
After setting core.https_address:
State Local Address:Port
LISTEN 10.8.8.2:8000
LISTEN 0.0.0.0:22
incus incusd[1428]: time="2025-08-03T18:13:10-05:00" level=error msg="Cannot currently listen on https socket, re-trying once in 30s..." err="Bind network address: listen tcp 10.8.8.2:8000: bind: cannot assign requested address"
incus incusd[1428]: time="2025-08-03T18:13:41-05:00" level=error msg="Still unable to listen on https socket" err="Cannot listen on network HTTPS socket \"10.8.8.2:8000\": listen tcp 10.8.8.2:8000: bind: cannot assign requested address"
I run OPNsense in a VM (via Incus) which is my only router/gateway, and the interface I want Incus to listen on receives its IP via DHCP. So I think what’s going on is that OPNsense takes long enough to start up that the interface doesn’t receive its IP in time.
Two solutions:
Give the interface a static IP
Create a oneshot systemd service that waits for the interface to get its IP and then run the incus config set commands