Skip to content

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

@Pavan-Microsoft

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

No one assigned

    Type

    No fields configured for Bug.

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions