fix(run_agent): recover primary client on openai transport errors

This commit is contained in:
helix4u 2026-04-09 13:56:11 -06:00 committed by Teknium
parent 19292eb8bf
commit 9aedab00f4
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