diff --git a/src/sakia/core/net/node.py b/src/sakia/core/net/node.py
index f1f2d4b59c842460afc5abbad99188ccec5fecf8..fe2d5c2a3fd52c22faa0304d4bcd3957693e0147 100644
--- a/src/sakia/core/net/node.py
+++ b/src/sakia/core/net/node.py
@@ -204,7 +204,7 @@ class Node(QObject):
     def close_ws(self):
         for ws in self._ws_connection.values():
             if ws:
-                asyncio.wait_for(ws.close(), timeout=15)
+                asyncio.as_completed(ws.close(), timeout=15)
 
     @property
     def pubkey(self):
diff --git a/src/sakia/main.py b/src/sakia/main.py
index 8058c3324f3d79366edcf76c175031a18bd8ba19..07fc4b845e64dc4dae8b72dcc05130dc6bfe5f9f 100755
--- a/src/sakia/main.py
+++ b/src/sakia/main.py
@@ -50,10 +50,11 @@ def async_exception_handler(loop, context):
         for ignored in ("Unclosed", "socket.gaierror"):
             if ignored in line:
                 return
-    for line in traceback.format_exception(*exc_info):
-        for ignored in ("Unclosed", "socket.gaierror"):
-            if ignored in line:
-                return
+    if exc_info:
+        for line in traceback.format_exception(*exc_info):
+            for ignored in ("Unclosed", "socket.gaierror"):
+                if ignored in line:
+                    return
     os._exit(1)