Happens across clouds, a destroy request removes the vm record from CS after its acknowledged by the cloud service, but this is typically a rest interface just giving a 200 ok that it got the request, not that the request was completed.
Instead of removing the record leave it in place and change the state to "Destroying" - retry the destroy every ~5 minutes and let the VMPoller detect when the vm is actually gone and remove the record there.
Happens across clouds, a destroy request removes the vm record from CS after its acknowledged by the cloud service, but this is typically a rest interface just giving a 200 ok that it got the request, not that the request was completed. Instead of removing the record leave it in place and change the state to "Destroying" - retry the destroy every ~5 minutes and let the VMPoller detect when the vm is actually gone and remove the record there.