diff --git a/cleanup.py b/cleanup.py
index b0060f7b10acdd93fe02b5a0ee74247ac1fa5563..84c29191a5695e9ca9f01e2b0e78cdfd94cdec2d 100644
--- a/cleanup.py
+++ b/cleanup.py
@@ -4,14 +4,20 @@ import openstack
 import env
 import os
 import sys
-
+import time
 
 def main() -> None:
     print("Delete openstack instances", flush=True)
     try:
         conn = openstack.connect()
         for server in conn.compute.servers(name=env.VM_NAME):
-            conn.delete_server(server.id, wait=True, delete_ips=True)
+            for i in range(5):
+                conn.delete_server(server.id, delete_ips=True)
+                time.sleep(5)
+                state = conn.compute.find_server(server.id, ignore_missing=True)
+                if state is None:
+                    print(f'Delete server {server.id} successful')
+                    break
         if os.path.exists(env.PRIVATE_KEY_PATH):
             os.remove(env.PRIVATE_KEY_PATH)
         conn.delete_keypair(env.KEY_PAIR_NAME)