From 87525238baea225ee13bdbeee4bc9821cae1a060 Mon Sep 17 00:00:00 2001 From: Bram van den Heuvel Date: Sun, 28 Jun 2026 13:48:42 +0200 Subject: [PATCH] Prevent exceptions from destroying the ELO tracker scheduled loop --- agents/remote.py | 2 +- elo_tracker/app.py | 2 +- pyclient/client.py | 5 ++++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/agents/remote.py b/agents/remote.py index 39a41ac..5e32957 100644 --- a/agents/remote.py +++ b/agents/remote.py @@ -93,7 +93,7 @@ class RemoteAgent(Agent): response = requests.get(url, json=payload, timeout=self.timeout) response.raise_for_status() content = response.json() - except (requests.RequestException, requests.HTTPError, ValueError): + except (requests.ConnectTimeout, requests.RequestException, requests.HTTPError, ValueError): return {} else: return content if isinstance(content, dict) else {} diff --git a/elo_tracker/app.py b/elo_tracker/app.py index 597654c..bdcd9f2 100644 --- a/elo_tracker/app.py +++ b/elo_tracker/app.py @@ -460,7 +460,7 @@ class EloTracker: self.play_random_match(game=game, player_count=player_count) except Exception as exc: self.__debug(f"Scheduled match failed: {exc}") - raise exc + # raise exc if self.__scheduler_stop.wait(interval_seconds): break diff --git a/pyclient/client.py b/pyclient/client.py index fa2328f..37be5d8 100644 --- a/pyclient/client.py +++ b/pyclient/client.py @@ -52,7 +52,10 @@ class PyClient: if on_move is None: payload = {} else: - payload = on_move(current_state.as_seen_by(player=player)) + try: + payload = on_move(current_state.as_seen_by(player=player)) + except Exception: + payload = {} current_state = current_state.move(payload=payload)