From 16e243e067e5b2c37d7df70774ceb5e12bb0197b Mon Sep 17 00:00:00 2001 From: sprmn24 Date: Mon, 27 Apr 2026 00:32:08 +0300 Subject: [PATCH] fix(timeouts): guard load_config() call against runtime exceptions Both get_provider_request_timeout() and get_provider_stale_timeout() wrapped the load_config import in try/except ImportError but left the actual load_config() call unprotected. A corrupt config file, YAML parse error, or permission failure would raise instead of returning None safely. Move load_config() inside the try block so any exception returns None. --- hermes_cli/timeouts.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hermes_cli/timeouts.py b/hermes_cli/timeouts.py index 59db4012be..fa77d75951 100644 --- a/hermes_cli/timeouts.py +++ b/hermes_cli/timeouts.py @@ -20,10 +20,10 @@ def get_provider_request_timeout( try: from hermes_cli.config import load_config - except ImportError: + config = load_config() + except (ImportError, Exception): return None - config = load_config() providers = config.get("providers", {}) if isinstance(config, dict) else {} provider_config = ( providers.get(provider_id, {}) if isinstance(providers, dict) else {} @@ -49,10 +49,10 @@ def get_provider_stale_timeout( try: from hermes_cli.config import load_config - except ImportError: + config = load_config() + except (ImportError, Exception): return None - config = load_config() providers = config.get("providers", {}) if isinstance(config, dict) else {} provider_config = ( providers.get(provider_id, {}) if isinstance(providers, dict) else {}