Incus ui - cannot access to Windows Desktop (“Console error: connection closed”)

Hello everyone!

I have an incus instance on a small server (Debian trixie with zabbly repo). I use it mostly with linux containers that serve services on the network, but I also have a Windows 11 VM. I sometimes start this Windows VM, update and clone it when I really need Windows.

Until recently, I could use the incus UI to have a graphical access to this VM, but it is now impossible: I can see for a microsecond the Windows Desktop, but then an error pops up :

“Console error: connection closed”

I also tried with an older snapshot of this VM (that I am sure was working before): same issue.

Here is an extract from the qemu.qmp.log :

[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 747468}, "event": "SPICE_CONNECTED", "data": {"server": {"port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "host": "localhost"}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 767572}, "event": "SPICE_INITIALIZED", "data": {"server": {"auth": "none", "port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "channel-type": 1, "connection-id": 4520245, "host": "localhost", "channel-id": 0, "tls": false}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 795562}, "event": "SPICE_CONNECTED", "data": {"server": {"port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "host": "localhost"}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 813234}, "event": "SPICE_CONNECTED", "data": {"server": {"port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "host": "localhost"}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 815925}, "event": "SPICE_INITIALIZED", "data": {"server": {"auth": "none", "port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "channel-type": 2, "connection-id": 4520245, "host": "localhost", "channel-id": 0, "tls": false}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 830625}, "event": "SPICE_CONNECTED", "data": {"server": {"port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "host": "localhost"}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 840277}, "event": "SPICE_INITIALIZED", "data": {"server": {"auth": "none", "port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "channel-type": 4, "connection-id": 4520245, "host": "localhost", "channel-id": 0, "tls": false}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 845563}, "event": "SPICE_CONNECTED", "data": {"server": {"port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "host": "localhost"}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 849025}, "event": "SPICE_INITIALIZED", "data": {"server": {"auth": "none", "port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "channel-type": 6, "connection-id": 4520245, "host": "localhost", "channel-id": 0, "tls": false}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 856607}, "event": "SPICE_CONNECTED", "data": {"server": {"port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "host": "localhost"}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 857615}, "event": "SPICE_INITIALIZED", "data": {"server": {"auth": "none", "port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "channel-type": 5, "connection-id": 4520245, "host": "localhost", "channel-id": 0, "tls": false}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 866526}, "event": "SPICE_CONNECTED", "data": {"server": {"port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "host": "localhost"}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 873465}, "event": "SPICE_INITIALIZED", "data": {"server": {"auth": "none", "port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "channel-type": 6, "connection-id": 4520245, "host": "localhost", "channel-id": 0, "tls": false}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 873490}, "event": "SPICE_DISCONNECTED", "data": {"server": {"port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "host": "localhost"}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 876771}, "event": "SPICE_CONNECTED", "data": {"server": {"port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "host": "localhost"}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 877386}, "event": "SPICE_INITIALIZED", "data": {"server": {"auth": "none", "port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "channel-type": 5, "connection-id": 4520245, "host": "localhost", "channel-id": 0, "tls": false}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 877413}, "event": "SPICE_DISCONNECTED", "data": {"server": {"port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "host": "localhost"}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 887185}, "event": "SPICE_CONNECTED", "data": {"server": {"port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "host": "localhost"}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 887769}, "event": "SPICE_INITIALIZED", "data": {"server": {"auth": "none", "port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "channel-type": 9, "connection-id": 4520245, "host": "localhost", "channel-id": 2, "tls": false}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 897695}, "event": "SPICE_CONNECTED", "data": {"server": {"port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "host": "localhost"}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 907055}, "event": "SPICE_INITIALIZED", "data": {"server": {"auth": "none", "port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "channel-type": 9, "connection-id": 4520245, "host": "localhost", "channel-id": 1, "tls": false}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 907470}, "event": "SPICE_CONNECTED", "data": {"server": {"port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "host": "localhost"}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 908337}, "event": "SPICE_INITIALIZED", "data": {"server": {"auth": "none", "port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "channel-type": 9, "connection-id": 4520245, "host": "localhost", "channel-id": 0, "tls": false}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 917401}, "event": "SPICE_CONNECTED", "data": {"server": {"port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "host": "localhost"}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 924855}, "event": "SPICE_INITIALIZED", "data": {"server": {"auth": "none", "port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "channel-type": 11, "connection-id": 4520245, "host": "localhost", "channel-id": 0, "tls": false}}}
[2026-05-08T17:26:07+02:00] Event: {"timestamp": {"seconds": 1778253967, "microseconds": 926323}, "event": "SPICE_INITIALIZED", "data": {"server": {"auth": "none", "port": "/run/incus/win11vm/qemu.spice", "family": "unix", "host": "localhost"}, "client": {"port": "", "family": "unix", "channel-type": 3, "connection-id": 4520245, "host": "localhost", "channel-id": 0, "tls": false}}}

So it seems to be a spice problem, but do you have any idea how I could find more information to debug this problem ?

(( Perhaps this is important: I use incus through the cli (really well made by the way), but also through the incus web ui (also really good). The latter is only accessible via a ssh tunnel:

ssh -i <path/to/ssh_key> -p <ssh_server_port> <server_user>@<ip_server> -L localhost:8443:localhost:8443

# Then on my local machine: firefox https://localhost:8443

))

In any case, I truly want to thank everyone working on this wonderful project ! You are truly amazing !

Have a wonderful weekend !

Do you enable keepalive for the remote connection? I only remember experiencing something similar when keepalive is enabled.

Hello Ibrahim,

Thanks for taking the time to help. I do not use any of the “keepalive” options provided by OpenSSH.

Also, please note that I did not change anything in my setup, apart from updating the server where incus is installed and my Linux client (Arch Linux).

Have a wonderful weekend !

No, I am referring to keepalive for incus remotes How to add remote servers - Incus documentation .

Does the SPICE console work outside of the Incus UI?

Try incus console {name} --type=vga.

I want to try to isolate whether the issue is:

A. The UI’s SPICE Client

B. The SSH Transport

C. A deeper issue impacting all SPICE connectivity

Might not be relevant but for windows VMs I have always ..

$ Incus config set vm_name limits.memory=?GiB where ? Might be 6 or 8
and
$ Incus config set vm_name limits.cpu=4

Using minimum/default settings can cause big delays with windows doing anything.

Hello everyone,

It is now working !

Long story short, I installed Incus on my Arch Linux laptop and configured it to communicate with the remote Incus server (using incus remote). Everything went smoothly when I started the Windows 11 VM from the remote incus.

Anyway, thanks a lot for your help and advice!

Have a great week!