Volume Creation Failure Due to Image Format Mismatch

Problem

The volume creation from an image fails with the following error:

cinder.exception.ImageUnacceptable: Image <ID> is unacceptable: The image format was claimed to be 'raw' but the image data appears to be in a different format.

This leads to:

  • Volume stuck in error or downloading state.

  • Orphaned files on Tintri/NFS backends.

  • VM boot attempts failing with libvirt format errors.

Environment

  • Private Cloud Director Virtualization - v2025.6 and Higher

  • Self-Hosted Private Cloud Director Virtualization - v2025.6 and Higher

  • Block Storage using Tintri VMstore (NFS backend)

  • Image stored in local file store

  • Example versions:

    • cinder.volume.drivers.vmstore.nfs

    • Image Service metadata (disk_format=raw, container_format=bare)

Cause

A image was incorrectly labeled as raw, but its actual data content was qcow2 (or another format). Block Storage’s image_utils.check_image_format() layer detected:

  • Metadata says raw

  • Data is actually non-raw

As a result:

  • Image conversion was aborted

  • Volume remained partially created

  • Back-end cleanup was incomplete

Diagnostics

  1. Check image metadata

openstack image show <image-id>
  1. Verify actual image format - Must run on Image Service host

qemu-img info /var/lib/glance/images/glance/<IMAGE_ID>
file format: qcow2
  1. Check Tintri logs for refresh failure

ERR-API-8001: Failed to find requested resource
  1. Check orphaned files on the block storage backend

ls -lh /tintri/<TENANT>/cinder/volume-<VOLUME_UUID>

Resolution

  1. If the desired format of the image is actually qcow2, update Image service metadata:

openstack image set --disk-format qcow2 <IMAGE_ID>
  1. Clean up stale backend file - Only if the volume was stuck/errored when checking the openstack command, and the openstack volume delete <VOLUME_UUID> does not remove the volume

ssh <TINTRI_MOUNT_HOST> rm /tintri/<TENANT>/cinder/volume-<VOLUME_UUID>
Warning

Ensure to delete only the stale volume which is in stuck/errored state due to disk_format mismatch, else if a valid volume is deleted it will result on data loss.

Validation

  1. Re-upload or fix image metadata, the disk_format should now reflect actual format.

openstack image show <IMAGE_ID> | grep disk_format
  1. Create test bootable volume

openstack volume create --image <IMAGE_ID> --size 10 test-vol
  1. Check volume status

openstack volume show test-vol | grep status

Expected status:

status: available
  1. Confirm no orphaned data: Cleanup confirmed on Tintri backend.

Additional Information

To prevent this issue in the future, you can adopt any of the following options:

Option A

Enforce qcow2 labelling by always uploading with:

--disk-format qcow2

Option B

Validate before import on image upload:

qemu-img info <FILE>

Option C

Enable image conversion - Use Image Service import workflow with:

glance-direct web-download copy-image