VM Creation Fails With ImageUnacceptable Error

Problem

VM creation fails and the instance moves to ERROR state. The compute logs indicate that the image conversion from QCOW2 to RAW fails with corruption errors.

Environment

  • Compoent: Image service
  • Private Cloud Director Virtualization - v2025.4 and Higher
  • Self-Hosted Private Cloud Director Virtualization - v2025.4 and Higher

Cause

The base QCOW2 image used for VM creation is corrupted. During the instance build, Compute (Nova) attempts to fetch and convert the image from QCOW2 → RAW using qemu-img. The conversion fails because the cached image file has metadata corruption, resulting in alignment errors and I/O read failures.

This typically happens due to:

  • Partial/incomplete image upload to Glance
  • Interrupted image transfer during caching to the compute node
  • Filesystem or disk I/O issues on the compute node
  • Corrupted original image source

Diagnostics

Instance failure details:

Command
Copy

Check image health manually

Image Host
Copy

If corruption is present, it will show output similar to:

Command Output
Copy

Check corrupted cached image on compute

Compute Host
Copy

The .part or .converted files may indicate an incomplete download or a failed conversion.

Resolution

  • Obtain a clean and verified copy of the original QCOW2 image.
  • Delete the corrupted image from Glance:
Command
Copy
  • Re-upload the image:
Command
Copy
  • Remove corrupted cached image files from the compute node(s):
Compute Host
Copy
  • Recreate the VM using the newly uploaded image.

Validation

  • Verify that the image now passes integrity checks:
Image Host
Copy
  • Boot a test instance:
Command
Copy
  • Confirm the instance transitions successfully to ACTIVE

Additional Information

  • Nova uses a caching mechanism on each compute node: Images are stored under /opt/data/instances/_base/ and reused for performance. If the cached file is corrupted, every VM creation using that image will fail on that compute node until the cache is cleared.

  • QCOW2 image corruption may not always be visible immediately when uploading to Image Service. qemu-img check is the most reliable method to validate image health.

  • If multiple compute nodes show failures, it is recommended to:

    • Validate the image directly
    • Clear cached base images on all compute nodes where the VM build previously failed
  • Image backend corruption can also cause similar issues. If using filesystem/RBD/NFS, ensure backend health and confirm storage logs for I/O errors.

  • To avoid corrupted uploads, it is best practice to generate and verify checksums (e.g., SHA256) for every image before and after uploading to Image Service.

Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard