Skip to content

Python: [Bug]: FoundryAgent causing ConnectTimeout on multi-turn conversations #6241

Description

@Pavan-Microsoft

Description

When using FoundryAgent in a multi-turn conversation, the second (or subsequent) call to agent.run() fails with httpx.ConnectTimeout → openai.APITimeoutError. The underlying httpx client uses a default connect timeout (likely 5s) which is insufficient for Azure AI endpoints under load or when connections are recycled between turns.

Code Sample

https://github.com/microsoft/agentic-applications-for-unified-data-foundation-solution-accelerator/blob/prdc-rm-nonworkshop/infra/scripts/post-provision/07_test_agent.py


from azure.identity import DefaultAzureCredential
 from agent_framework.foundry import FoundryAgent
 
 agent = FoundryAgent(
     project_endpoint="https://<endpoint>.services.ai.azure.com/api",
     agent_name="my-agent",
     credential=DefaultAzureCredential(),
 )
 
 # First call succeeds (agent uses file_search tool, takes ~15s)
 async for chunk in agent.run("What criteria determine if a site passes inspection?", stream=True):
     print(chunk.text, end="")
 
 # Second call fails with ConnectTimeout
 async for chunk in agent.run(
     "What safety requirements must technicians follow?",
     stream=True,
     options={"conversation_id": conv_id}
 ):
     print(chunk.text, end="")

Error Messages / Stack Traces

Error: <class 'agent_framework_foundry._agent._FoundryAgentChatClient'> service failed to complete the prompt: Request timed out.
Traceback (most recent call last):
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\httpx\_transports\default.py", line 101, in map_httpcore_exceptions
    yield
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\httpx\_transports\default.py", line 394, in handle_async_request
    resp = await self._pool.handle_async_request(req)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\httpcore\_async\connection_pool.py", line 256, in handle_async_request
    raise exc from None
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\httpcore\_async\connection_pool.py", line 236, in handle_async_request
    response = await connection.handle_async_request(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\httpcore\_async\connection.py", line 101, in handle_async_request
    raise exc
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\httpcore\_async\connection.py", line 78, in handle_async_request
    stream = await self._connect(request)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\httpcore\_async\connection.py", line 124, in _connect
    stream = await self._network_backend.connect_tcp(**kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\httpcore\_backends\auto.py", line 31, in connect_tcp
    return await self._backend.connect_tcp(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\httpcore\_backends\anyio.py", line 113, in connect_tcp
    with map_exceptions(exc_map):
  File "C:\Users\v-kupavan\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 158, in __exit__
    self.gen.throw(typ, value, traceback)
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\httpcore\_exceptions.py", line 14, in map_exceptions
    raise to_exc(exc) from exc
httpcore.ConnectTimeout

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\openai\_base_client.py", line 1529, in request
    response = await self._client.send(
               ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\httpx\_client.py", line 1629, in send
    response = await self._send_handling_auth(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\httpx\_client.py", line 1657, in _send_handling_auth
    response = await self._send_handling_redirects(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\httpx\_client.py", line 1694, in _send_handling_redirects
    response = await self._send_single_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\httpx\_client.py", line 1730, in _send_single_request
    response = await transport.handle_async_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\httpx\_transports\default.py", line 393, in handle_async_request
    with map_httpcore_exceptions():
  File "C:\Users\v-kupavan\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 158, in __exit__
    self.gen.throw(typ, value, traceback)
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\httpx\_transports\default.py", line 118, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.ConnectTimeout

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\agent_framework_openai\_chat_client.py", line 555, in _stream
    async for chunk in await client.responses.create(stream=True, **run_options):
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\openai\resources\responses\responses.py", line 2320, in create
    return await self._post(
           ^^^^^^^^^^^^^^^^^
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\openai\_base_client.py", line 1794, in post
    return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\openai\_base_client.py", line 1547, in request
    raise APITimeoutError(request=request) from err
openai.APITimeoutError: Request timed out.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\infra\scripts\post-provision\07_test_agent.py", line 227, in chat
    async for chunk in agent.run(user_message, **run_kwargs):
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\agent_framework\_types.py", line 3015, in __anext__
    update: UpdateT = await self._iterator.__anext__()
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\agent_framework\_types.py", line 3015, in __anext__
    update: UpdateT = await self._iterator.__anext__()
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\agent_framework\_types.py", line 3015, in __anext__
    update: UpdateT = await self._iterator.__anext__()
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\agent_framework\_tools.py", line 2486, in _stream
    async for update in inner_stream:
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\agent_framework\_types.py", line 3015, in __anext__
    update: UpdateT = await self._iterator.__anext__()
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\agent_framework_openai\_chat_client.py", line 563, in _stream
    self._handle_request_error(ex)
  File "C:\Users\v-kupavan\repos\agentic-applications-for-unified-data-foundation-solution-accelerator\.venv\Lib\site-packages\agent_framework_openai\_chat_client.py", line 494, in _handle_request_error
    raise ChatClientException(
agent_framework.exceptions.ChatClientException: <class 'agent_framework_foundry._agent._FoundryAgentChatClient'> service failed to complete the prompt: Request timed out.

Package Versions

Azure AI Foundry SDK azure-ai-projects==2.1.0 azure-ai-agents==1.2.0b5 agent-framework-core==1.1.1 agent-framework-azure-ai==1.0.0rc6 agent-framework-foundry==1.1.1

Python Version

3.11+

Additional Context

No response

Metadata

Metadata

Assignees

Labels

agentsUsage: [Issues, PRs], Target: Single agentbugUsage: [Issues], Target: all issues (Legacy, prefer issue type: bug)pythonUsage: [Issues, PRs], Target: PythonreproducedUsage: [Issues], Target: all issues that can be reproduced by the triage workflow

Type

Projects

Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions