diff --git a/src/agents/models/openai_chatcompletions.py b/src/agents/models/openai_chatcompletions.py index 454bd7afda..6aae318674 100644 --- a/src/agents/models/openai_chatcompletions.py +++ b/src/agents/models/openai_chatcompletions.py @@ -20,7 +20,7 @@ from .. import _debug from ..agent_output import AgentOutputSchemaBase -from ..exceptions import UserError +from ..exceptions import ModelBehaviorError, UserError from ..handoffs import Handoff from ..items import ModelResponse, TResponseInputItem, TResponseStreamEvent from ..logger import logger @@ -131,6 +131,14 @@ async def get_response( prompt=prompt, ) + if not response.choices: + provider_error = getattr(response, "error", None) + error_details = f": {provider_error}" if provider_error is not None else "" + raise ModelBehaviorError( + f"ChatCompletion response has no choices (possible provider error payload)" + f"{error_details}" + ) + message: ChatCompletionMessage | None = None first_choice: Choice | None = None if response.choices and len(response.choices) > 0: