Hi, I found a few issues while testing the quickstart flow with Gemini that seem worth addressing for first-run usability.
Tagging @jackiekazil and @colinfrisch in case this is helpful context.
Observed issues
Unbounded retry behavior in ModuleLLM
ModuleLLM.generate() / agenerate() retry transient LiteLLM errors such as APIConnectionError, Timeout, and RateLimitError using exponential backoff, but without a clear stop condition.
In practice, this can make the script appear stuck while LiteLLM repeatedly prints its help/debug banner.
Outdated Gemini model names causing 404 errors
Older Gemini model names such as:
gemini-pro
gemini-1.5-pro
now return 404 errors from the Google API.
This currently surfaces as a raw LiteLLM traceback, which makes it harder for users to understand that the issue is an outdated model name rather than a runtime failure.
Missing actionable error message for NotFoundError
It may be helpful to rewrite Gemini NotFoundError into a more actionable message, for example:
Model 'gemini/gemini-1.5-pro' was not found. This Gemini model may no longer be available via this API. Try 'gemini/gemini-2.0-flash' instead.
Tool usage in quickstart (tool_choice="required")
It may also be worth reviewing whether tool_choice="required" in the CoT executor step is ideal for minimal examples.
In practice, it can make simple quickstart usage more dependent on tool-calling behavior than users might expect, and may introduce unnecessary failures for providers that do not fully support tool calling.
Possible improvements
- Add a bounded retry policy in
ModuleLLM so transient failures eventually surface clearly (instead of potentially looping indefinitely).
- Rewrite Gemini
NotFoundError responses into a more actionable error message with a suggested replacement model.
- Update quickstart/default examples to use a currently available Gemini model (e.g.
gemini-2.0-flash, depending on API availability).
- Optionally revisit whether
tool_choice="required" is appropriate for minimal quickstart examples.
Example of clearer error messaging
Something like:
Model 'gemini/gemini-1.5-pro' was not found. This Gemini model may no longer be available via this API. Try 'gemini/gemini-2.0-flash' instead.
If this direction sounds reasonable, I’d be happy to work on a fix and open a PR.
Hi, I found a few issues while testing the quickstart flow with Gemini that seem worth addressing for first-run usability.
Tagging @jackiekazil and @colinfrisch in case this is helpful context.
Observed issues
Unbounded retry behavior in ModuleLLM
ModuleLLM.generate()/agenerate()retry transient LiteLLM errors such asAPIConnectionError,Timeout, andRateLimitErrorusing exponential backoff, but without a clear stop condition.In practice, this can make the script appear stuck while LiteLLM repeatedly prints its help/debug banner.
Outdated Gemini model names causing 404 errors
Older Gemini model names such as:
gemini-progemini-1.5-pronow return 404 errors from the Google API.
This currently surfaces as a raw LiteLLM traceback, which makes it harder for users to understand that the issue is an outdated model name rather than a runtime failure.
Missing actionable error message for NotFoundError
It may be helpful to rewrite Gemini
NotFoundErrorinto a more actionable message, for example:Tool usage in quickstart (
tool_choice="required")It may also be worth reviewing whether
tool_choice="required"in the CoT executor step is ideal for minimal examples.In practice, it can make simple quickstart usage more dependent on tool-calling behavior than users might expect, and may introduce unnecessary failures for providers that do not fully support tool calling.
Possible improvements
ModuleLLMso transient failures eventually surface clearly (instead of potentially looping indefinitely).NotFoundErrorresponses into a more actionable error message with a suggested replacement model.gemini-2.0-flash, depending on API availability).tool_choice="required"is appropriate for minimal quickstart examples.Example of clearer error messaging
Something like:
If this direction sounds reasonable, I’d be happy to work on a fix and open a PR.