If data folder is a symlink to a drive that is not mounted, GNOME Boxes thinks there are no VMs and offers to create new ones, instead of asking to mount
GNOME Boxes currently does not allow specifying a location for its data folder, as seen in #273 (closed) and #656. Unfortunately for those of us with small/filled home directories, and who rely on external drives (or even NFS) to store VMs, we are forced to replace ~/.local/share/gnome-boxes
by a symlink pointing to those drives. This is the only solution that has been suggested in comments such as @digiberk's #273 (comment 636232) or @weepes in #656 (comment 1048979), or even popular tutorials such as https://www.techrepublic.com/article/change-drive-location-gnome/
The problem is, if this is an external drive or even an internal drive that is not permanently mounted (i.e. something you have to mount with Nautilus or GNOME Disks), then GNOME Boxes 45 will fail to realize that it needs to mount it first when launching the app:
$ gnome-boxes
Boxes-WARNING **: 14:07:33.242: util.vala:156: Error creating directory /home/my_user/.local/share/gnome-boxes/images: No such file or directory
Error setting up default broker: Unable to refresh storage pool: cannot open directory '/home/my_user/.local/share/gnome-boxes/images': No such file or directory
Boxes-WARNING **: 14:07:33.270: (../src/app.vala:440):boxes_app_setup_default_source_co: runtime check failed: (default_connection != null)
…and it will give you this misleading UI, which can make you think that it either deleted/lost all your boxes, or that you never created them, and I'm not sure what would happen if you were to try to create any new ones in this state:
If you are not going to support specifying a custom location, and instead force people to use symlinks, then it should check/follow the symlink and display an error message about the nonexistent/unmounted location, or (ideally) offer to mount it like Nautilus or GNOME Disks would.