From 0eedc662e651befcec941074baf52e3504907ec4 Mon Sep 17 00:00:00 2001 From: Yotsov Date: Sat, 19 Jul 2025 10:35:59 +0200 Subject: [PATCH 1/2] Retry also on TimeoutError in request_queue --- aim/ext/transport/request_queue.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aim/ext/transport/request_queue.py b/aim/ext/transport/request_queue.py index 1301d0a60c..8de7d88d9f 100644 --- a/aim/ext/transport/request_queue.py +++ b/aim/ext/transport/request_queue.py @@ -79,7 +79,7 @@ def _try_exec_task(self, task_f, *args): try: task_f(*args) return True - except ConnectionClosedError as e: + except (ConnectionClosedError, TimeoutError) as e: self._needs_reconnect = True retry += 1 From be46fc12e43243800628f4a63529ca76b126b3ed Mon Sep 17 00:00:00 2001 From: Yotsov Date: Tue, 22 Jul 2025 09:58:03 +0200 Subject: [PATCH 2/2] Catch also WebSocketException that are not ConnectionClosedError --- aim/ext/transport/request_queue.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aim/ext/transport/request_queue.py b/aim/ext/transport/request_queue.py index 8de7d88d9f..d1242a50ea 100644 --- a/aim/ext/transport/request_queue.py +++ b/aim/ext/transport/request_queue.py @@ -63,7 +63,7 @@ def worker(self): def _try_exec_task(self, task_f, *args): # temporary workaround for M1 build - from websockets.exceptions import ConnectionClosedError + from websockets.exceptions import WebSocketException retry = 0 while retry < self.retry_count: @@ -79,7 +79,7 @@ def _try_exec_task(self, task_f, *args): try: task_f(*args) return True - except (ConnectionClosedError, TimeoutError) as e: + except (WebSocketException, TimeoutError) as e: self._needs_reconnect = True retry += 1