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.