From 2ae4deaf7ac420ad5871e3957fb027a856ce7edf Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Sat, 31 Oct 2026 10:22:59 +0100 Subject: vm: say what to do when a saved state won't restore A managed save written by libvirt 12.0.0's default raw format restores through an fd: migration, which QEMU 11.1.2 refuses with "migrate-incoming: fd: migration to a file is not supported. Use file: instead." The start then fails the same way every time, and the notification only carried that raw error, which does not say the fix is the page's own Discard saved state button. A start failure mentioning migrate-incoming now leads with that advice and keeps the raw error below it. The host side was fixed separately with save_image_format = "sparse" in qemu.conf, which restores through file: and was checked with a managedsave and start round trip. Co-Authored-By: Claude Opus 5.5 --- desktop/modules/vm/VmModule.qml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'desktop/modules') diff --git a/desktop/modules/vm/VmModule.qml b/desktop/modules/vm/VmModule.qml index fa88cef..6a7a9c8 100644 --- a/desktop/modules/vm/VmModule.qml +++ b/desktop/modules/vm/VmModule.qml @@ -48,7 +48,15 @@ Module { property Connections conn: Connections { target: Virsh - function onActionFailed(vm, action, message) { mod.notify(vm, action, message); } + // A start that fails in migrate-incoming is a managed save QEMU will + // not restore (an fd: save under a QEMU that wants file:), and it + // fails the same way every time, so say what to do about it. + function onActionFailed(vm, action, message) { + if (action === "start" && message.includes("migrate-incoming")) + message = "Its saved state can't be restored. Discard saved state on the VMs page, " + + "then start it again: it boots cold, the disk is untouched.\n\n" + message; + mod.notify(vm, action, message); + } } property Connections dockerConn: Connections { -- cgit v1.2.3