From 78d1e252faae2aecd9e65e4c52c5ca01e38a0abd Mon Sep 17 00:00:00 2001 From: sprmn24 Date: Fri, 24 Apr 2026 00:32:40 +0300 Subject: [PATCH] fix(web_server): guard GATEWAY_HEALTH_TIMEOUT against invalid env values float(os.getenv(...)) at module level raises ValueError on any non-numeric value, crashing the web server at import before it starts. Wrap in try/except with a warning log and fallback to 3.0s. --- hermes_cli/web_server.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/hermes_cli/web_server.py b/hermes_cli/web_server.py index ca473b0a5..0ea5132f1 100644 --- a/hermes_cli/web_server.py +++ b/hermes_cli/web_server.py @@ -431,7 +431,14 @@ class EnvVarReveal(BaseModel): _GATEWAY_HEALTH_URL = os.getenv("GATEWAY_HEALTH_URL") -_GATEWAY_HEALTH_TIMEOUT = float(os.getenv("GATEWAY_HEALTH_TIMEOUT", "3")) +try: + _GATEWAY_HEALTH_TIMEOUT = float(os.getenv("GATEWAY_HEALTH_TIMEOUT", "3")) +except (ValueError, TypeError): + _log.warning( + "Invalid GATEWAY_HEALTH_TIMEOUT value %r — using default 3.0s", + os.getenv("GATEWAY_HEALTH_TIMEOUT"), + ) + _GATEWAY_HEALTH_TIMEOUT = 3.0 def _probe_gateway_health() -> tuple[bool, dict | None]: