Can you show the error? Dom0 journal:
sudo journalctl -xeu qubesd
You will need to scroll a bit. Will contain timestamps and qube names. Redact them if you want.
Can you show the error? Dom0 journal:
sudo journalctl -xeu qubesd
You will need to scroll a bit. Will contain timestamps and qube names. Redact them if you want.
Mar 10 07:27:04 dom0 qubesd[3380]: INFO: vm.disp5514: Activating qube
Mar 10 07:27:04 dom0 runuser[19128]: pam_unix(runuser:session): session opened for user user(uid=1000) by (uid=0)
Mar 10 07:27:07 dom0 runuser[18996]: pam_unix(runuser:session): session closed for user user
Mar 10 07:27:07 dom0 qubesd[3380]: INFO: vm.disp8597: Preload startup waiting 'qubes.WaitForRunningSystem' with '60' seconds timeout
Mar 10 07:27:07 dom0 qubesd[3380]: WARNING: protocol error for call b'admin.vm.device.webcam.Attached'+b'' (b'dom0' ā b'disp8597') with payload of 0 bytes
Mar 10 07:27:13 dom0 runuser[19128]: pam_unix(runuser:session): session closed for user user
Mar 10 07:27:13 dom0 qubesd[3380]: INFO: vm.disp5514: Preload startup waiting 'qubes.WaitForRunningSystem' with '60' seconds timeout
Mar 10 07:27:13 dom0 qubesd[3380]: WARNING: protocol error for call b'admin.vm.device.webcam.Attached'+b'' (b'dom0' ā b'disp5514') with payload of 0 bytes
Mar 10 07:27:18 dom0 qubesd[3380]: ERROR: vm.disp8597: Start failed: Error on call to 'qubes.WaitForRunningSystem' during preload startup. To debug, run the following on a new disposable of 'fedora-dvm': systemctl --failed
Mar 10 07:27:21 dom0 qubesd[3380]: INFO: vm.fedora-dvm: Removing qube(s) from preloaded list because automatic cleanup was called: 'disp8597'
Mar 10 07:27:21 dom0 qubesd[3380]: INFO: Removing appmenus for 'disp8597' in 'dom0'
Mar 10 07:27:21 dom0 runuser[19386]: pam_unix(runuser:session): session opened for user user(uid=1000) by (uid=0)
Mar 10 07:27:22 dom0 runuser[19386]: pam_unix(runuser:session): session closed for user user
Mar 10 07:27:22 dom0 qubesd[3380]: INFO: vm.disp8597: Removing volume root: qubes_dom0/vm-disp8597-root
Mar 10 07:27:22 dom0 qubesd[3380]: INFO: vm.disp8597: Removing volume private: qubes_dom0/vm-disp8597-private
Mar 10 07:27:22 dom0 qubesd[3380]: INFO: vm.disp8597: Removing volume volatile: qubes_dom0/vm-disp8597-volatile
Mar 10 07:27:22 dom0 qubesd[3380]: INFO: vm.disp8597: Removing volume kernel: 6.12.64-1.fc41
Mar 10 07:27:22 dom0 qubesd[3380]: ERROR: Task exception was never retrieved
Mar 10 07:27:22 dom0 qubesd[3380]: future: <Task finished name='Task-182982' coro=<Emitter.fire_event_async() done, defined at /usr/lib/python3.13/site-packages/qubes/events.py:211> exception=QubesException("Error on call to 'qubes.WaitFo>
Mar 10 07:27:22 dom0 qubesd[3380]: Traceback (most recent call last):
Mar 10 07:27:22 dom0 qubesd[3380]: File "/usr/lib/python3.13/site-packages/qubes/vm/dispvm.py", line 507, in wait_operational_preload
Mar 10 07:27:22 dom0 qubesd[3380]: await asyncio.wait_for(
Mar 10 07:27:22 dom0 qubesd[3380]: ...<6 lines>...
Mar 10 07:27:22 dom0 qubesd[3380]: )
Mar 10 07:27:22 dom0 qubesd[3380]: File "/usr/lib64/python3.13/asyncio/tasks.py", line 507, in wait_for
Mar 10 07:27:22 dom0 qubesd[3380]: return await fut
Mar 10 07:27:22 dom0 qubesd[3380]: ^^^^^^^^^
Mar 10 07:27:22 dom0 qubesd[3380]: File "/usr/lib/python3.13/site-packages/qubes/vm/qubesvm.py", line 1948, in run_for_stdio
Mar 10 07:27:22 dom0 qubesd[3380]: raise subprocess.CalledProcessError(
Mar 10 07:27:22 dom0 qubesd[3380]: p.returncode, args[0], *stdouterr
Mar 10 07:27:22 dom0 qubesd[3380]: )
Mar 10 07:27:22 dom0 qubesd[3380]: subprocess.CalledProcessError: Command '$(PATH="/run/qubes-rpc:/usr/local/etc/qubes-rpc:/etc/qubes-rpc" command -v "qubes.WaitForRunningSystem")' returned non-zero exit status 1.
Mar 10 07:27:22 dom0 qubesd[3380]: During handling of the above exception, another exception occurred:
Mar 10 07:27:22 dom0 qubesd[3380]: Traceback (most recent call last):
Mar 10 07:27:22 dom0 qubesd[3380]: File "/usr/lib/python3.13/site-packages/qubes/events.py", line 243, in fire_event_async
Mar 10 07:27:22 dom0 qubesd[3380]: effect = task.result()
Mar 10 07:27:22 dom0 qubesd[3380]: File "/usr/lib/python3.13/site-packages/qubes/vm/mix/dvmtemplate.py", line 525, in on_domain_preload_dispvm_used
Mar 10 07:27:22 dom0 qubesd[3380]: await asyncio.gather(
Mar 10 07:27:22 dom0 qubesd[3380]: ...<4 lines>...
Mar 10 07:27:22 dom0 qubesd[3380]: )
Mar 10 07:27:22 dom0 qubesd[3380]: File "/usr/lib/python3.13/site-packages/qubes/vm/dispvm.py", line 780, in from_appvm
Mar 10 07:27:22 dom0 qubesd[3380]: dispvm = await cls.gen_disposable(appvm, preload=preload, **kwargs)
Mar 10 07:27:22 dom0 qubesd[3380]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Mar 10 07:27:22 dom0 qubesd[3380]: File "/usr/lib/python3.13/site-packages/qubes/vm/dispvm.py", line 825, in gen_disposable
Mar 10 07:27:22 dom0 qubesd[3380]: await dispvm.start()
Mar 10 07:27:22 dom0 qubesd[3380]: File "/usr/lib/python3.13/site-packages/qubes/vm/dispvm.py", line 988, in start
Mar 10 07:27:22 dom0 qubesd[3380]: await super().start(**kwargs)
Mar 10 07:27:22 dom0 qubesd[3380]: File "/usr/lib/python3.13/site-packages/qubes/vm/qubesvm.py", line 1553, in start
Mar 10 07:27:22 dom0 qubesd[3380]: await self.fire_event_async(
Mar 10 07:27:22 dom0 qubesd[3380]: "domain-start", start_guid=start_guid
Mar 10 07:27:22 dom0 qubesd[3380]: )
Mar 10 07:27:22 dom0 qubesd[3380]: File "/usr/lib/python3.13/site-packages/qubes/events.py", line 243, in fire_event_async
Mar 10 07:27:22 dom0 qubesd[3380]: effect = task.result()
Mar 10 07:27:22 dom0 qubesd[3380]: File "/usr/lib/python3.13/site-packages/qubes/vm/dispvm.py", line 568, in on_domain_started_dispvm
Mar 10 07:27:22 dom0 qubesd[3380]: await earliest_task
Mar 10 07:27:22 dom0 qubesd[3380]: File "/usr/lib/python3.13/site-packages/qubes/vm/dispvm.py", line 525, in wait_operational_preload
Mar 10 07:27:22 dom0 qubesd[3380]: raise qubes.exc.QubesException(
Mar 10 07:27:22 dom0 qubesd[3380]: ...<3 lines>...
Mar 10 07:27:22 dom0 qubesd[3380]: )
Mar 10 07:27:22 dom0 qubesd[3380]: qubes.exc.QubesException: Error on call to 'qubes.WaitForRunningSystem' during preload startup. To debug, run the following on a new disposable of 'fedora-dvm': systemctl --failed
Mar 10 07:27:24 dom0 qubesd[3380]: ERROR: vm.disp5514: Start failed: Error on call to 'qubes.WaitForRunningSystem' during preload startup. To debug, run the following on a new disposable of 'fedora-dvm': systemctl --failed
Mar 10 07:27:26 dom0 qubesd[3380]: INFO: vm.fedora-dvm: Removing qube(s) from preloaded list because automatic cleanup was called: 'disp5514'
Mar 10 07:27:26 dom0 qubesd[3380]: INFO: Removing appmenus for 'disp5514' in 'dom0'
Which shell did you set as default for this qube?
The code above is outdated, PR was merged: Use canonical name to Qrexec service by ben-grande Ā· Pull Request #769 Ā· QubesOS/qubes-core-admin Ā· GitHub
Included in 4.3.39: Commits Ā· QubesOS/qubes-core-admin Ā· GitHub
The version 4.3.42 is available in stable repos: Index of /r4.3/current/host/fc41/rpm/
In other words, please update dom0, the templates and try again.
Shell is /bin/bash.
Running dom0 update returned no new updates available.
Running update on fedora-42-xfce returned:
Updated packages:
chromium 145.0.7632.116-1.fc42 -> 145.0.7632.159-1.fc42
chromium-common 145.0.7632.116-1.fc42 -> 145.0.7632.159-1.fc42
libmad 0.16.4-5.fc42 -> 0.16.4-13.fc42
yt-dlp 2026.02.21-1.fc42 -> 2026.03.03-1.fc42
yt-dlp+default 2026.02.21-1.fc42 -> 2026.03.03-1.fc42
Removed packages:
None
On dom0:
rpm -qf /usr/lib/python3.13/site-packages/qubes
[user@dom0 ~]$ rpm -qf /usr/lib/python3.13/site-packages/qubes
qubes-core-dom0-4.3.42-1.fc41.noarch
Restart qubesd and try again to preload:
systemctl restart qubesd
Check journalctl logs then.
Mar 11 12:35:56 dom0 qubesd[34095]: INFO: vm.disp3002: Preload startup waiting 'qubes.WaitForRunningSystem' with '60' seconds timeout
Mar 11 12:35:57 dom0 lvm[2224]: WARNING: Thin pool qubes_dom0-vm--pool-tpool data is now 81.95% full.
Mar 11 12:35:57 dom0 qubesd[34095]: WARNING: protocol error for call b'admin.vm.device.webcam.Attached'+b'' (b'dom0' ā b'disp3002') with payload of 0 bytes
Mar 11 12:35:59 dom0 qubesd[34095]: ERROR: vm.disp3002: Start failed: Error on call to 'qubes.WaitForRunningSystem' during preload startup. To debug, run the following on a new disposable of 'fedora-dvm': systemctl --failed
Mar 11 12:35:59 dom0 qrexec-policy-daemon[4485]: qrexec: qubes.Notifications+: disp3002 -> @default: allowed to dom0
Mar 11 12:35:59 dom0 kernel: xen-backend console-40-0: xenbus: device forcefully removed from xenstore
Mar 11 12:36:00 dom0 systemd-homed[3103]: block device /sys/devices/virtual/block/dm-383 has been removed.
Mar 11 12:36:00 dom0 systemd-homed[3103]: block device /sys/devices/virtual/block/dm-383 has been removed.
Mar 11 12:36:00 dom0 systemd-homed[3103]: block device /sys/devices/virtual/block/dm-382 has been removed.
Mar 11 12:36:00 dom0 systemd-homed[3103]: block device /sys/devices/virtual/block/dm-382 has been removed.
Mar 11 12:36:00 dom0 systemd-homed[3103]: block device /sys/devices/virtual/block/dm-385 has been removed.
Mar 11 12:36:00 dom0 systemd-homed[3103]: block device /sys/devices/virtual/block/dm-385 has been removed.
Mar 11 12:36:01 dom0 qubesd[34095]: INFO: vm.fedora-dvm: Removing qube(s) from preloaded list because automatic cleanup was called: 'disp3002'
Mar 11 12:36:01 dom0 qubesd[34095]: INFO: Removing appmenus for 'disp3002' in 'dom0'
Mar 11 12:36:02 dom0 qubesd[34095]: INFO: vm.disp3002: Removing volume root: qubes_dom0/vm-disp3002-root
Mar 11 12:36:02 dom0 qubesd[34095]: INFO: vm.disp3002: Removing volume private: qubes_dom0/vm-disp3002-private
Mar 11 12:36:02 dom0 qubesd[34095]: INFO: vm.disp3002: Removing volume volatile: qubes_dom0/vm-disp3002-volatile
Mar 11 12:36:02 dom0 qubesd[34095]: INFO: vm.disp3002: Removing volume kernel: 6.12.64-1.fc41
Mar 11 12:36:02 dom0 qubesd[34095]: ERROR: Task exception was never retrieved
Mar 11 12:36:02 dom0 qubesd[34095]: future: <Task finished name='Task-175012' coro=<Emitter.fire_event_async() done, defined at /usr/lib/python3.13/site-packages/qubes/events.py:211> exception=QubesException("Error on call to 'qubes.WaitForRunningSystem' during preload startup. To debug, run the following on a new disposable of 'fedora-dvm': systemctl --failed")>
Mar 11 12:36:02 dom0 qubesd[34095]: Traceback (most recent call last):
Mar 11 12:36:02 dom0 qubesd[34095]: File "/usr/lib/python3.13/site-packages/qubes/vm/dispvm.py", line 507, in wait_operational_preload
Mar 11 12:36:02 dom0 qubesd[34095]: await asyncio.wait_for(
Mar 11 12:36:02 dom0 qubesd[34095]: ...<6 lines>...
Mar 11 12:36:02 dom0 qubesd[34095]: )
Mar 11 12:36:02 dom0 qubesd[34095]: File "/usr/lib64/python3.13/asyncio/tasks.py", line 507, in wait_for
Mar 11 12:36:02 dom0 qubesd[34095]: return await fut
Mar 11 12:36:02 dom0 qubesd[34095]: ^^^^^^^^^
Mar 11 12:36:02 dom0 qubesd[34095]: File "/usr/lib/python3.13/site-packages/qubes/vm/qubesvm.py", line 1948, in run_for_stdio
Mar 11 12:36:02 dom0 qubesd[34095]: raise subprocess.CalledProcessError(
Mar 11 12:36:02 dom0 qubesd[34095]: p.returncode, args[0], *stdouterr
Mar 11 12:36:02 dom0 qubesd[34095]: )
Mar 11 12:36:02 dom0 qubesd[34095]: subprocess.CalledProcessError: Command '$(PATH="/run/qubes-rpc:/usr/local/etc/qubes-rpc:/etc/qubes-rpc" command -v "qubes.WaitForRunningSystem")' returned non-zero exit status 1.
Mar 11 12:36:02 dom0 qubesd[34095]: During handling of the above exception, another exception occurred:
Mar 11 12:36:02 dom0 qubesd[34095]: Traceback (most recent call last):
Mar 11 12:36:02 dom0 qubesd[34095]: File "/usr/lib/python3.13/site-packages/qubes/events.py", line 243, in fire_event_async
Mar 11 12:36:02 dom0 qubesd[34095]: effect = task.result()
Mar 11 12:36:02 dom0 qubesd[34095]: File "/usr/lib/python3.13/site-packages/qubes/vm/mix/dvmtemplate.py", line 525, in on_domain_preload_dispvm_used
Mar 11 12:36:02 dom0 qubesd[34095]: await asyncio.gather(
Mar 11 12:36:02 dom0 qubesd[34095]: ...<4 lines>...
Mar 11 12:36:02 dom0 qubesd[34095]: )
Mar 11 12:36:02 dom0 qubesd[34095]: File "/usr/lib/python3.13/site-packages/qubes/vm/dispvm.py", line 780, in from_appvm
Mar 11 12:36:02 dom0 qubesd[34095]: dispvm = await cls.gen_disposable(appvm, preload=preload, **kwargs)
Mar 11 12:36:02 dom0 qubesd[34095]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Mar 11 12:36:02 dom0 qubesd[34095]: File "/usr/lib/python3.13/site-packages/qubes/vm/dispvm.py", line 825, in gen_disposable
Mar 11 12:36:02 dom0 qubesd[34095]: await dispvm.start()
Mar 11 12:36:02 dom0 qubesd[34095]: File "/usr/lib/python3.13/site-packages/qubes/vm/dispvm.py", line 988, in start
Mar 11 12:36:02 dom0 qubesd[34095]: await super().start(**kwargs)
Mar 11 12:36:02 dom0 qubesd[34095]: File "/usr/lib/python3.13/site-packages/qubes/vm/qubesvm.py", line 1553, in start
Mar 11 12:36:02 dom0 qubesd[34095]: await self.fire_event_async(
Mar 11 12:36:02 dom0 qubesd[34095]: "domain-start", start_guid=start_guid
Mar 11 12:36:02 dom0 qubesd[34095]: )
Mar 11 12:36:02 dom0 qubesd[34095]: File "/usr/lib/python3.13/site-packages/qubes/events.py", line 243, in fire_event_async
Mar 11 12:36:02 dom0 qubesd[34095]: effect = task.result()
Mar 11 12:36:02 dom0 qubesd[34095]: File "/usr/lib/python3.13/site-packages/qubes/vm/dispvm.py", line 568, in on_domain_started_dispvm
Mar 11 12:36:02 dom0 qubesd[34095]: await earliest_task
Mar 11 12:36:02 dom0 qubesd[34095]: File "/usr/lib/python3.13/site-packages/qubes/vm/dispvm.py", line 525, in wait_operational_preload
Mar 11 12:36:02 dom0 qubesd[34095]: raise qubes.exc.QubesException(
Mar 11 12:36:02 dom0 qubesd[34095]: ...<3 lines>...
Mar 11 12:36:02 dom0 qubesd[34095]: )
Mar 11 12:36:02 dom0 qubesd[34095]: qubes.exc.QubesException: Error on call to 'qubes.WaitForRunningSystem' during preload startup. To debug, run the following on a new disposable of 'fedora-dvm': systemctl --failed
Can you use a different disposable template based on a different template? You can preload from individual disposable templates using āVM Settings ā Advancedā.
On the template that is failing, run:
rpm -qf /etc/qubes-rpc/qubes.WaitForRunningSystem
From dom0:
qvm-run -p --dispvm=fedora-dvm --service qubes.WaitForRunningSystem
qvm-run -p --dispvm=fedora-dvm 'sh -x /etc/qubes-rpc/qubes.WaitForRunningSystem'
Starting a new DispVM from fedora-dvm:
[user@disp6517 ~]$ rpm -qf /etc/qubes-rpc/qubes.WaitForRunningSystem
qubes-core-agent-4.3.40-1.fc42.x86_64
From dom0:
[user@dom0 ~]$ qvm-run -p --dispvm=fedora-dvm --service qubes.WaitForRunningSystem
[user@dom0 ~]$ qvm-run -p --dispvm=fedora-dvm 'sh -x /etc/qubes-rpc/qubes.WaitForRunningSystem'
+ set -eu
+ systemctl --wait --quiet is-system-running
I donāt see any āVM Settingsā in Qubes Global Config. Where is this?
It is a per qube setting, click on app menu, select a qube and click on settings, or qubes-vm-settings QUBE.
Ok. What I am going to document here, shouldnāt be used really, it is just for debugging. It will allow an arbitrary message from a qube to be logged to dom0 without sanitization, which is dangerous.
On the template of fedora-dvm, edit /etc/qubes-rpc/qubes.WaitForRunningSystem and add set -x after the hashbang. Save the file and shutdown the qube.
On /usr/lib/python3.13/site-packages/qubes/vm/dispvm.py, find def wait_operation_preload, find stdout= and stderr= and change from subprocess.DEVNULL to subprocess.PIPE. Later on `raise qubes.exc.QubesException, change the message to the following:
raise qubes.exc.QubesException(
"Error on call to '%s' during preload startup: %s, stderr=%r, stdout=%r. To debug, "
"disable preloading from '%s' and run the following on a new "
"disposable: %s" % (service, exc, exc.stderr, exc.stdout, self.template, debug_msg)
)
Then, systemctl restart qubesd.
Request a disposable until you get a preloaded disposable, in th meantime, check the journal output:
sudo journalctl -fu qubesd
After we solve this issue, reinstall the qubesd package to return to a known good state:
sudo qubes-dom0-update --action=reinstall qubes-core-dom0
am I editing any files in dom0 or are all those edits in the template?
Sorry to not make it clear. Just /etc/qubes-rpc/qubes.WaitForRunningSystem is to be edited in the qube, the rest is in dom0.