Some how, some way, there is inevitably corruption in the block device_mapping table in the nova db. This will fuck with stuff like migrations, nova starts, etc.

The most common that we see is having duplicate entries for a single volume_id, all being deleted: 0, deleted_at NULL, etc.

We generally just double check the results on that volume_id, choose the right one (there is generally only 1 that has connection info NOT NULL) and delete the extra offending rules.