diff --git a/gns3server/server.py b/gns3server/server.py
index <HASH>..<HASH> 100644
--- a/gns3server/server.py
+++ b/gns3server/server.py
@@ -252,7 +252,8 @@ class Server:
             # TypeError: async() takes 1 positional argument but 3 were given
             log.warning("TypeError exception in the loop {}".format(e))
         finally:
-            if self._handler:
+            if self._handler and self._loop.is_running():
                 self._loop.run_until_complete(self._handler.finish_connections())
             server.close()
-            self._loop.run_until_complete(app.finish())
+            if self._loop.is_running():
+                self._loop.run_until_complete(app.finish())
Makes sure the loop is running when closing the app.