{"record":{"id":"df7cc84f28e078d6","repo":"BerriAI/litellm","slug":"image-variation-provider-has-no-known-model-info-c","errorCode":null,"errorMessage":"image variation provider has no known model info config - required for getting api keys, etc.: {custom_llm_provider}. Supported providers are: {LITELLM_IMAGE_VARIATION_PROVIDERS}","messagePattern":"image variation provider has no known model info config - required for getting api keys, etc\\.: (.+?)\\. Supported providers are: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/images/main.py","lineNumber":651,"sourceCode":"    # route to the correct provider w/ the params\n    try:\n        llm_provider: Final = LlmProviders(custom_llm_provider)\n        image_variation_provider: Final = LITELLM_IMAGE_VARIATION_PROVIDERS(llm_provider)\n    except ValueError:\n        raise ValueError(\n            f\"Invalid image variation provider: {custom_llm_provider}. Supported providers are: {LITELLM_IMAGE_VARIATION_PROVIDERS}\"\n        )\n    model_response: Final = ImageResponse()\n\n    response: ImageResponse | None = None\n\n    provider_config: Final = ProviderConfigManager.get_provider_model_info(\n        model=model or \"\",  # openai defaults to dall-e-2\n        provider=llm_provider,\n    )\n\n    if provider_config is None:\n        raise ValueError(\n            f\"image variation provider has no known model info config - required for getting api keys, etc.: {custom_llm_provider}. Supported providers are: {LITELLM_IMAGE_VARIATION_PROVIDERS}\"\n        )\n\n    api_key: Final = provider_config.get_api_key(litellm_params.get(\"api_key\", None))\n    api_base = provider_config.get_api_base(litellm_params.get(\"api_base\", None))\n\n    if image_variation_provider == LITELLM_IMAGE_VARIATION_PROVIDERS.OPENAI:\n        if api_key is None:\n            raise ValueError(\"API key is required for OpenAI image variations\")\n        if api_base is None:\n            raise ValueError(\"API base is required for OpenAI image variations\")\n\n        response = openai_image_variations.image_variations(\n            model_response=model_response,\n            api_key=api_key,\n            api_base=api_base,\n            model=model,\n            image=image,","sourceCodeStart":633,"sourceCodeEnd":669,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/images/main.py#L633-L669","documentation":"The provider was accepted into LITELLM_IMAGE_VARIATION_PROVIDERS, but ProviderConfigManager.get_provider_model_info() returned None, meaning litellm has no model-info config from which to resolve API keys and base URLs for variations (litellm/images/main.py:645-653). This is an internal-coverage gap: the enum knows the provider, the config registry does not.","triggerScenarios":"Hitting a variation provider whose enum entry exists but whose model-info registration is missing in the installed litellm version; typically after adding a new provider enum member without the accompanying config, or version skew between enum and registry.","commonSituations":"Using a fork/patched litellm where the enum was extended; or a bug in a specific litellm release.","solutions":["Upgrade litellm to a release where the variation provider's model info config is registered","Pin to a known-good litellm version if a recent release introduced the regression","If unresolved, fall back to OpenAI/Topaz variation endpoints which have complete configs","Report the provider/model pair to litellm's GitHub issues"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"def variation_model_info_available(model: str, provider: str) -> bool:\n    from litellm.provider_config_manager import ProviderConfigManager  # adjust import\n    try:\n        return ProviderConfigManager.get_provider_model_info(model=model, provider=provider) is not None\n    except Exception:\n        return False","typeGuard":null,"tryCatchPattern":"try:\n    r = litellm.image_variations(model=m, image=img)\nexcept ValueError as e:\n    if \"no known model info config\" in str(e):\n        raise RuntimeError(f\"litellm version lacks variation config for {m}; upgrade litellm\") from e\n    raise","preventionTips":["Pin litellm and test image-variation smoke calls in CI to catch coverage gaps","Upgrade litellm when adopting a new variation provider","Report missing configs upstream with the exact model string"],"tags":["image-variations","provider-config","version-skew"],"backgroundTag":null,"analyzedSha":"6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d","analyzedAt":"2026-08-15T07:12:03.035Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}