From e25b158218aa37e6a782d11fb37476c02f254221 Mon Sep 17 00:00:00 2001 From: Aran Yogesh Date: Tue, 7 Apr 2026 17:57:21 -0700 Subject: [PATCH] fix: add retry with delay for sandbox proxy config to avoid 500 when proxy isn't ready (#1168) * fix: add retry with delay for sandbox proxy config to avoid 500 when proxy isn't ready * fix: add retry with exponential backoff and connection error handling for proxy config --- agent/integrations/langsmith.py | 38 +++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/agent/integrations/langsmith.py b/agent/integrations/langsmith.py index 9324be2a..d031c7e6 100644 --- a/agent/integrations/langsmith.py +++ b/agent/integrations/langsmith.py @@ -69,13 +69,39 @@ def _configure_github_proxy(sandbox_name: str, github_token: str) -> None: ] } } + max_retries = 3 + retry_delay = 5 with httpx.Client() as client: - response = client.patch( - url, - json=payload, - headers={"X-API-Key": api_key}, - ) - response.raise_for_status() + for attempt in range(max_retries): + if attempt > 0: + time.sleep(retry_delay) + try: + response = client.patch( + url, + json=payload, + headers={"X-API-Key": api_key}, + ) + except httpx.HTTPError as e: + logger.warning( + "Proxy config attempt %d/%d connection error: %s", + attempt + 1, + max_retries, + e, + ) + if attempt == max_retries - 1: + raise + continue + if response.is_success: + break + logger.warning( + "Proxy config attempt %d/%d failed (%s): %s", + attempt + 1, + max_retries, + response.status_code, + response.text, + ) + if attempt == max_retries - 1: + response.raise_for_status() logger.info("Configured GitHub proxy for sandbox %s", sandbox_name)