From 288bcd254e267222b4cf68e3016e6bb512c1ce7a Mon Sep 17 00:00:00 2001 From: Xingyao Wang Date: Sun, 6 Apr 2025 07:38:50 -0700 Subject: [PATCH] fix: retry on retryable httpx-related error to improve evaluation stability (#7719) Co-authored-by: Engel Nyst Co-authored-by: openhands --- .../impl/action_execution/action_execution_client.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/openhands/runtime/impl/action_execution/action_execution_client.py b/openhands/runtime/impl/action_execution/action_execution_client.py index 3ae72b7790..d9aa31d8c8 100644 --- a/openhands/runtime/impl/action_execution/action_execution_client.py +++ b/openhands/runtime/impl/action_execution/action_execution_client.py @@ -45,7 +45,7 @@ from openhands.utils.http_session import HttpSession from openhands.utils.tenacity_stop import stop_if_should_exit -def _is_retryable_check_alive_error(exception): +def _is_retryable_error(exception): return isinstance( exception, (httpx.RemoteProtocolError, httpcore.RemoteProtocolError) ) @@ -93,6 +93,11 @@ class ActionExecutionClient(Runtime): def _get_action_execution_server_host(self) -> str: pass + @retry( + retry=retry_if_exception(_is_retryable_error), + stop=stop_after_attempt(5) | stop_if_should_exit(), + wait=wait_exponential(multiplier=1, min=4, max=15), + ) def _send_action_server_request( self, method: str, @@ -114,11 +119,6 @@ class ActionExecutionClient(Runtime): """ return send_request(self.session, method, url, **kwargs) - @retry( - retry=retry_if_exception(_is_retryable_check_alive_error), - stop=stop_after_attempt(5) | stop_if_should_exit(), - wait=wait_exponential(multiplier=1, min=4, max=15), - ) def check_if_alive(self) -> None: response = self._send_action_server_request( 'GET',