Windows randomly disappearing from a qube (using i3)

I am having an issue that seems like a bug. I am on i3 with latest Qubes. Sometimes, if I do: qvm-run qube1 thunar, it simply doesn’t show up.

This is very rare. At other times, I was browsing files with the arrows in thunar, while listening to music with vlc (from the same qube). Both disappeared. Music was still playing. I couldn’t get the applications to show. I didn’t send them to i3’s scratchpad accidentally (I checked). Any further applications launched either from dom0 or i3s launcher did not launch. Technically they do, since I tested with firefox and upon restarting all instances restart.

So it’s some kind of GUI / showing application problem.
I tried: wmctrl -l -x they did not appear there. This is so strange.

Any idea what process to kill and restart without shutting down the qube (and potentially missing work)? Or any way to troubleshoot this?

Try adding the -p option:

qvm-run -p qube1 thunar

You will then see any error stdout/stderr output from loading missing dependencies or other errors that you would see from the command line.

Thank you for your reply. This issue is a problem since I can’t find a way to solve it other than just restarting the cube which means losing work.

The issue is random but I sort of was able to replicate it by starting 2 apps in a qube with 2 qvm-run -p, and then moving them to a workspace as they appear.

Here is what I’ve found (with marmarek’s help):
I opened firefox with: qvm-run -p QUBE1 firefox. Then I moved it to workspace 1 in i3 and it disappeared. dom0 terminal showed no error.

Then I opened another dom0 terminal and checked the qubes-gui-agent service status: qvm-run --nogui -p -u root QUBE1 systemctl status qubes-gui-agent

It said it was active, running, but after “Ok, somebody connected” it shows a new line saying “libchan_is_eof”. Full output if it helps:

● qubes-gui-agent.service - Qubes GUI Agent
     Loaded: loaded (/usr/lib/systemd/system/qubes-gui-agent.service; enabled; preset: enabled)
     Active: active (running) since Sun 2026-03-01 19:37:28 CET; 7min ago
 Invocation: 7094776c5c90459aa54bbc51ff7b24e0
    Process: 929 ExecStartPre=/bin/sh -c /usr/lib/qubes/qubes-gui-agent-pre.sh (code=exited, status=0/SUCCESS)
   Main PID: 941 (qubes-gui)
      Tasks: 1 (limit: 7680)
     Memory: 2.5M (peak: 3.4M)
        CPU: 85ms
     CGroup: /system.slice/qubes-gui-agent.service
             └─941 /usr/bin/qubes-gui -d 0

Mar 01 19:37:28 personal systemd[1]: Starting qubes-gui-agent.service - Qubes GUI Agent...
Mar 01 19:37:28 personal systemd[1]: Started qubes-gui-agent.service - Qubes GUI Agent.
Mar 01 19:37:29 personal qubes-gui[941]: Waiting on /var/run/xf86-qubes-socket socket...
Mar 01 19:37:29 personal qubes-gui-runuser[965]: pam_unix(qubes-gui-agent:session): session opened for user user(uid=1000) by (uid=0)
Mar 01 19:37:30 personal qubes-gui[941]: Ok, somebody connected.
Mar 01 19:37:39 personal qubes-gui[941]: libvchan_is_eof

Output of /var/log/qubes/guid.QUBE1.log

Icon size: 128x128
Falling back to setting _NET_WM_USER_TIME on the root window
invalid PMaxSize for 0x3e00190 (16384/16384)
ErrorHandler: 128
                 Major opcode: 130 ()
                 Minor opcode: 3
                 ResourceID:   0x3e0019d
                 Failed serial number:  1502
                 Current serial number: 1515

Marmarek said “That error might be relevant. I’m not sure why the error code is not resolved there, but it looks like an error on XShmPutImage call, so - actually trying to putting application window into the dom0 window. The error code 128 might be BadShmSeg. Just in case, can you check also if ~/.xsession-errors or Xorg.0.log in dom0 have some entries at that time? Probably not, but there is a chance there will be hints if I corectly decoded the code.”

I’ve also tried:

qvm-run --nogui -p -u root QUBE1 systemctl restart qubes-gui-agent

Then I tried:

qvm-run -p QUBE1 firefox

and I got:

Error: cannot open display: :0

I also checked:

qvm-run --nogui -p -u root QUBE1 journalctl -u qubes-gui-agent -n 50 --no-pager 

And the only thing I could see that stood out was the: “qubes-gui[941]: libvchan_is_eof”

dom0 ~/.xsession-errors:

-------------dom0 ~/.xsession-errors entry that is close to that time:


2026-03-01 19:37:31,356 icon-receiver: connected: QUBE1

--------------Other relevant entries in dom0 ~/.xsession-errors:

1772395279.397169 Cork requested and playback vchan empty. Draining playback stream.
1772395279.439904 Playback vchan empty and playback stream drained. Corking playback stream.
Read 185 .desktop files, found 185 apps.
User input is: QUBE1: Firefox ESR
2026-03-01 22:09:52,993 icon-receiver: disconnected: QUBE1
Read 185 .desktop files, found 185 apps.
User input is: QUBE1: Firefox ESR
1772399408.647160 vchan_is_eof
1772399408.647528 vchan_is_eof
1772399408.647663 pulseaudio connection terminated
1772399408.651960 no /audio-input-config/personal entry in QubesDB
1772399470.633265 Connection to qube established, connecting to PulseAudio daemon

Nothing relevant in Xorg.0.log.

I hope someone gives me further hints on how to diagnose this because:

  1. I would like to learn more
  2. It’s very frustrating to lose work and this issue affects my productivity negatively, unfortunately.

This is also on a fresh install with nothing out of the ordinary.