diff --git a/prepare.py b/prepare.py
index 29a860e80235312a0ac80c8fc4fcd8af1ba487af..d8f726540a0df4c4be480a425a49230158ca4d56 100644
--- a/prepare.py
+++ b/prepare.py
@@ -36,7 +36,16 @@ def provision_server(
         network=network.id
     )
 
-    server =  conn.wait_for_server(server, timeout=1000)
+    start_time = time.time()
+    while True:
+        try:
+            server = conn.wait_for_server(server, timeout=10)
+            break
+        except openstack.exceptions.ResourceTimeout as e:
+            time_difference = time.time() - start_time
+            print(f"Waiting for server to start ({time_difference}s)")
+            if time_difference > 500:
+                raise e
     
     return server