You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
create_server module reports "Volume is not available" as fatal error after successful instance creation (false positive) #260
When migrating workloads using the boot_from_cinder path with import_workloads_boot_from_cinder: true, the create_server module consistently reports the following fatal error immediately after successfully creating the instance:
TASK [os_migrate.vmware_migration_kit.import_workloads : Create instance] **********************************************************************************************************************************************************************************************************************fatal: [192.168.210.243]: FAILED! => {"changed": false, "id": null, "msg": "Volume is not available"}
What actually happens:
The instance is created successfully, boots correctly, and all volumes and NICs are attached as expected. The volume transitions from available to in-use — which is the correct and expected Cinder state for a boot volume attached to a running instance.
Root cause:
After submitting the boot request to Nova, the module performs a post-creation check on the Cinder volume status and expects it to remain available. However, by the time the check executes, Nova has already attached the volume to the instance, transitioning its state to in-use. The module treats this valid transition as a failure condition.
Why this is a problem:
The module returns "id": null despite the instance existing in Nova with ACTIVE status
Any downstream tasks relying on instance_output.id will fail
Operators unfamiliar with the codebase will treat this as a real failure and attempt unnecessary troubleshooting or re-runs
The create_server module is a compiled binary (module_dispatcher), making it impossible to patch at the collection level without a fix from maintainers
Expected behaviour:
The module should treat a volume in in-use state as a successful outcome when the instance is in ACTIVE state, and return the correct id of the created instance.
Workaround:
Apply failed_when to suppress the false positive:
failed_when:
- instance_output.failed | default(false) | bool
- "'Volume is not available' not in (instance_output.msg | default(''))"
Activity
matbu commentedon Oct 20, 2026
This PR should address this issue:
#282