From df700ffa80b59e9379a879fbb145e0e93d3f773e Mon Sep 17 00:00:00 2001 From: Stefan Hackmann Date: Tue, 28 Jul 2026 11:23:48 +0200 Subject: [PATCH] fix: increase timeout and retry settings for transport configuration --- README.md | 8 ++++---- config.sample.yaml | 8 ++++---- src/jointfm_client/configuration.py | 8 ++++---- tests/test_configuration.py | 4 ++-- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 52f333f..d7b91f7 100644 --- a/README.md +++ b/README.md @@ -56,11 +56,11 @@ deployment: # model_version: jointfm-inference:0.2.0+ckpt.fin-2026-05-22 transport: timeout: - connect_seconds: 5.0 - read_seconds: 60.0 + connect_seconds: 10.0 + read_seconds: 120.0 retry: - max_attempts: 5 - backoff_seconds: 1 + max_attempts: 10 + backoff_seconds: 2 ``` Equivalent `.env` deployment configuration: diff --git a/config.sample.yaml b/config.sample.yaml index 55693c3..c7340d5 100644 --- a/config.sample.yaml +++ b/config.sample.yaml @@ -26,11 +26,11 @@ deployment: model_version: null transport: timeout: - connect_seconds: 5.0 - read_seconds: 60.0 + connect_seconds: 10.0 + read_seconds: 120.0 retry: - max_attempts: 5 - backoff_seconds: 1 + max_attempts: 10 + backoff_seconds: 2 max_backoff_seconds: 60.0 status_codes: - 408 diff --git a/src/jointfm_client/configuration.py b/src/jointfm_client/configuration.py index 7a627a1..a7ca806 100644 --- a/src/jointfm_client/configuration.py +++ b/src/jointfm_client/configuration.py @@ -130,8 +130,8 @@ def to_environment_values( class TimeoutConfig(_ConfigModel): """Default connect and read timeout values for HTTP requests.""" - connect_seconds: float = 5.0 - read_seconds: float = 60.0 + connect_seconds: float = 10.0 + read_seconds: float = 120.0 @field_validator("connect_seconds", "read_seconds") @classmethod @@ -144,8 +144,8 @@ def _validate_positive_finite(cls, value: float) -> float: class RetryConfig(_ConfigModel): """Default retry policy for transient HTTP failures.""" - max_attempts: int = 5 - backoff_seconds: float = 1 + max_attempts: int = 10 + backoff_seconds: float = 2 max_backoff_seconds: float = 60.0 status_codes: tuple[int, ...] = (408, 429, 500, 502, 503, 504) diff --git a/tests/test_configuration.py b/tests/test_configuration.py index 2506c20..19f945b 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -116,9 +116,9 @@ def test_load_configuration_layers_yaml_over_defaults(tmp_path: Path) -> None: assert config.deployment.datarobot_endpoint == "https://app.datarobot.com/api/v2" assert config.deployment.datarobot_api_token == "yaml-token" assert config.transport.timeout.connect_seconds == 1.25 - assert config.transport.timeout.read_seconds == 60.0 + assert config.transport.timeout.read_seconds == 120.0 assert config.transport.retry.max_attempts == 2 - assert config.transport.retry.backoff_seconds == 1 + assert config.transport.retry.backoff_seconds == 2 assert config.transport.retry.status_codes == (500,)