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.
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: <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.
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
Error Messages / Stack Traces
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