diff --git a/src/cai/sdk/agents/models/openai_chatcompletions.py b/src/cai/sdk/agents/models/openai_chatcompletions.py index 8931edd63..6a22287b0 100644 --- a/src/cai/sdk/agents/models/openai_chatcompletions.py +++ b/src/cai/sdk/agents/models/openai_chatcompletions.py @@ -721,6 +721,16 @@ async def get_response( raise + # Guard against empty choices list which can occur with some API providers + # (e.g. Gemini via OpenAI-compatible endpoint) due to content filtering or + # transient API errors. Raise a clear error instead of an obscure IndexError. + if not response.choices: + raise ValueError( + f"Model '{self.model}' returned a response with no choices. " + "This may be caused by content filtering, rate limiting, or an " + "API compatibility issue with the provider." + ) + if _debug.DONT_LOG_MODEL_DATA: logger.debug("Received model response") else: