Cockpit and KVM: Cannot generate external snapshot name for disk 'vda' without source

Update: This seems like this may be related to a bug in libvirt. You can still use the below instructions as a workaround until that gets fixed and the new version of libvirt is available in your distro. You can see the bug details here: https://gitlab.com/libvirt/libvirt/-/issues/631

When using storage pool volumes in Cockpit you may get the following error when trying to revert a snapshot:

"Could not revert to snapshot
unsupported configuration: cannot generate external snapshot name for disk 'vda' without source"

This happens when the VM disk is configured as a storage pool volume such as this:

One way to resolve this is to configure the VM disk as a 'file' type. Before doing this you will want to delete any existing snapshots.

Steps to change disk to 'file' type:

  1. Remove the disk from the VM. Take note of the disk image path as you will need this later.

  2. Make sure you select 'Remove' and not 'Remove and delete file' or else you will have a bad time.

  3. Click 'Add disk'

  4. Click on the 'Custom path' radio button and enter the path of your disk image in the custom path section. Click 'Add'.

  5. Your disk should now show a source type of 'file':

You should now be able to create and revert snapshots as expected.