{"record":{"id":"fd62e452a16cbbab","repo":"BerriAI/litellm","slug":"gemini-image-edit-requires-at-least-one-image","errorCode":null,"errorMessage":"Gemini image edit requires at least one image.","messagePattern":"Gemini image edit requires at least one image\\.","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/llms/gemini/image_edit/transformation.py","lineNumber":96,"sourceCode":"        api_base: str | None,\n        litellm_params: dict,\n    ) -> str:\n        base_url = api_base or get_secret_str(\"GEMINI_API_BASE\") or self.DEFAULT_BASE_URL\n        base_url = base_url.rstrip(\"/\")\n        return f\"{base_url}/models/{model}:generateContent\"\n\n    def transform_image_edit_request(\n        self,\n        model: str,\n        prompt: str | None,\n        image: FileTypes | None,\n        image_edit_optional_request_params: dict[str, Any],\n        litellm_params: GenericLiteLLMParams,\n        headers: dict,\n    ) -> tuple[dict[str, Any], RequestFiles | None]:\n        inline_parts: Final = self._prepare_inline_image_parts(image) if image else []\n        if not inline_parts:\n            raise ValueError(\"Gemini image edit requires at least one image.\")\n\n        # Build parts list with image and prompt (if provided)\n        parts: Final = inline_parts.copy()\n        if prompt is not None and prompt != \"\":\n            parts.append({\"text\": prompt})\n\n        contents: Final = [\n            {\n                \"parts\": parts,\n            }\n        ]\n\n        request_body: Final[dict[str, Any]] = {\"contents\": contents}\n\n        request_body[\"generationConfig\"] = get_gemini_image_generation_config(\n            model=model,\n            optional_params=image_edit_optional_request_params,\n        )","sourceCodeStart":78,"sourceCodeEnd":114,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/llms/gemini/image_edit/transformation.py#L78-L114","documentation":"Error \"Gemini image edit requires at least one image.\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/llms/gemini/image_edit/transformation.py:96 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass at least one image for the Gemini image edit request."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d","analyzedAt":"2026-08-15T07:12:03.035Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}