Incus remote websocket connection fails

I recently find incus shell and incus migrage commands would fail when latest non-LTS cli attempts to connect to LTS version server:

time="2025-07-09T15:49:59+08:00" level=debug msg="New operation" class=websocket description="Executing command" operation=744d2e2b-858a-4437-a910-93565d9b81d7 project=default
time="2025-07-09T15:49:59+08:00" level=debug msg="Started operation" class=websocket description="Executing command" operation=744d2e2b-858a-4437-a910-93565d9b81d7 project=default
time="2025-07-09T15:49:59+08:00" level=debug msg="Waiting for exec websockets to connect"
time="2025-07-09T15:49:59+08:00" level=debug msg="WriteJSON(...)" http_code=202
time="2025-07-09T15:50:04+08:00" level=debug msg="Failure for operation" class=websocket description="Executing command" err="Timed out waiting for websockets to connect"

The last line is the first log entry where failed remote calls differ from successful ones.
The problem seems to relate with websocket connections; sub-commands not using websocket (i.e., calling http api only) can execute normally. I tried bisecting and confirmed: some changes between version 6.8 and version 6.9 is responsible for the bug.

Here’s version info:

  • Server: incusd 6.0.4, debian 12, incusd exposed on globally routable static IPv6 address
  • Client: incus 6.14.0, arch linux (but since it’s a golang program and the issue is related to networking, it is very likely platform or architecture independent)

I’ll apologize if no compatibility between LTS and non-LTS release is guaranteed.

This is an interesting find. If I understand correctly, something changed in these commits (and older going back to the release of 6.8.0 on the 13th December 2024): Commits · lxc/incus · GitHub, likely related to websocket management.

I am not sure if the client is supposed to work with different versions of the server. If it’s not, then there should be an easy way to use other versions of the client when accessing remote Incus servers.

That’s right. For me I can only ssh into the destination and use LTS version of CLI program, but this makes migrations between hosts complicated.

I think you can file an issue at GitHub · Where software is built