Skip to content

Commit b7ba446

Browse files
Spectualseratch
andauthored
fix: #604 handle None choices in ChatCompletion response (#2850)
Co-authored-by: Kazuhiro Sera <seratch@openai.com>
1 parent b58d059 commit b7ba446

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

src/agents/models/openai_chatcompletions.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
from .. import _debug
2222
from ..agent_output import AgentOutputSchemaBase
23-
from ..exceptions import UserError
23+
from ..exceptions import ModelBehaviorError, UserError
2424
from ..handoffs import Handoff
2525
from ..items import ModelResponse, TResponseInputItem, TResponseStreamEvent
2626
from ..logger import logger
@@ -133,6 +133,15 @@ async def get_response(
133133
stream=False,
134134
prompt=prompt,
135135
)
136+
137+
if not response.choices:
138+
provider_error = getattr(response, "error", None)
139+
error_details = f": {provider_error}" if provider_error is not None else ""
140+
raise ModelBehaviorError(
141+
f"ChatCompletion response has no choices (possible provider error payload)"
142+
f"{error_details}"
143+
)
144+
136145
message: ChatCompletionMessage | None = None
137146
first_choice: Choice | None = None
138147
if response.choices and len(response.choices) > 0:

0 commit comments

Comments
 (0)