To clarify the min_disk isn't set wrong when taking the snapshot but before that. The min_disk is set to flavor.root_gb while the size is set to volume.size in the initial instance, however, the exception that would catch this actually occurs before the min_size is changed from 0 to whatever the flavor.root_gb value is which means if there is a discrepency (say a flavor of size 3 and volume of size 1) it won't be caught until the snapshot is created and we attempt to boot the snapshot since now the min_disk has already been set to 3 the exception is thrown. That is why the bug occurs on the booting of the snapshot.
To clarify the min_disk isn't set wrong when taking the snapshot but before that. The min_disk is set to flavor.root_gb while the size is set to volume.size in the initial instance, however, the exception that would catch this actually occurs before the min_size is changed from 0 to whatever the flavor.root_gb value is which means if there is a discrepency (say a flavor of size 3 and volume of size 1) it won't be caught until the snapshot is created and we attempt to boot the snapshot since now the min_disk has already been set to 3 the exception is thrown. That is why the bug occurs on the booting of the snapshot.