Here Volume creation was failed (above comment) and volume went to "error" state. Tempest cleanup part was not good enough to serve this case.
In destroy_volume_wait, it try to detach volume if volume status is not "available". If volume is in "error" state then, also it try to detach and through error as reported.
Logic in destroy_volume_wait should be checking of state as "in-use" before trying to detach volume. So that if it is in "in-use" state then detach and go for volume delete. If not in "in-use" ("available" or "error" etc) then do not try to detach as it is not attached and go for volume delete.
Here Volume creation was failed (above comment) and volume went to "error" state. Tempest cleanup part was not good enough to serve this case.
In destroy_ volume_ wait, it try to detach volume if volume status is not "available". If volume is in "error" state then, also it try to detach and through error as reported.
Logic in destroy_volume_wait should be checking of state as "in-use" before trying to detach volume. So that if it is in "in-use" state then detach and go for volume delete. If not in "in-use" ("available" or "error" etc) then do not try to detach as it is not attached and go for volume delete.