Compare commits

...

1 Commits

Author SHA1 Message Date
helix4u
526fbcf66e fix(run_agent): recover primary client on openai transport errors 2026-04-10 03:18:35 -07:00
2 changed files with 25 additions and 0 deletions

View File

@@ -5143,6 +5143,7 @@ class AIAgent:
_TRANSIENT_TRANSPORT_ERRORS = frozenset({
"ReadTimeout", "ConnectTimeout", "PoolTimeout",
"ConnectError", "RemoteProtocolError",
"APIConnectionError", "APITimeoutError",
})
def _try_recover_primary_transport(

View File

@@ -262,6 +262,30 @@ class TestTryRecoverPrimaryTransport:
assert result is True
def test_recovers_on_openai_api_connection_error(self):
agent = _make_agent(provider="custom")
error = _make_transport_error("APIConnectionError")
with patch("run_agent.OpenAI", return_value=MagicMock()), \
patch("time.sleep"):
result = agent._try_recover_primary_transport(
error, retry_count=3, max_retries=3,
)
assert result is True
def test_recovers_on_openai_api_timeout_error(self):
agent = _make_agent(provider="custom")
error = _make_transport_error("APITimeoutError")
with patch("run_agent.OpenAI", return_value=MagicMock()), \
patch("time.sleep"):
result = agent._try_recover_primary_transport(
error, retry_count=3, max_retries=3,
)
assert result is True
def test_skipped_when_already_on_fallback(self):
agent = _make_agent(provider="custom")
agent._fallback_activated = True