From 4d85e08fac3f9cfabd65c293d59e76059e49b686 Mon Sep 17 00:00:00 2001 From: Moe Khalil Date: Wed, 28 Oct 2026 01:55:07 +0000 Subject: [PATCH] fix(images): forward max_retries to the OpenAI image generation client Per-call, deployment and default_litellm_params max_retries were filtered out before reaching the OpenAI-compatible image handler, which then always used 2 SDK retries. Forward the caller's value, and pin it to 0 for routed calls so the Router stays the only retry owner, matching completion() Co-authored-by: Ericz Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- litellm/images/main.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/litellm/images/main.py b/litellm/images/main.py index 9c88e737a40..a60ca13a22a 100644 --- a/litellm/images/main.py +++ b/litellm/images/main.py @@ -284,6 +284,8 @@ def image_generation( extra_headers: Final = kwargs.get("extra_headers", None) headers: Final[dict] = kwargs.get("headers", None) or {} base_model: Final = kwargs.get("base_model", None) + max_retries: Final = kwargs.get("max_retries") + is_router_call: Final = any("model_group" in (kwargs.get(k) or ()) for k in ("metadata", "litellm_metadata")) if extra_headers is not None: headers.update(extra_headers) model_response: ImageResponse = litellm.utils.ImageResponse() @@ -550,6 +552,7 @@ def image_generation( optional_params["extra_headers"] = extra_headers # Forward OpenAI organization if present (set by proxy pre-call utils) organization: Final[str | None] = kwargs.get("organization", None) + sdk_max_retries: Final = 0 if is_router_call else max_retries model_response = openai_chat_completions.image_generation( model=model, prompt=prompt, @@ -557,7 +560,9 @@ def image_generation( api_key=api_key or dynamic_api_key, api_base=api_base, logging_obj=litellm_logging_obj, - optional_params=optional_params, + optional_params=( + optional_params if sdk_max_retries is None else {**optional_params, "max_retries": sdk_max_retries} + ), model_response=model_response, organization=organization, aimg_generation=aimg_generation,