{"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/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/images/main.py#L633-L669","documentation":"After the provider passes the LITELLM_IMAGE_VARIATION_PROVIDERS enum check, litellm looks up its provider/model info via ProviderConfigManager.get_provider_model_info; this is what supplies get_api_key/get_api_base defaults. A None result means the provider is nominally supported for variations but your installed litellm has no model-info registry entry for that provider/model pair, so credentials cannot be resolved.","triggerScenarios":"Using topaz (or openai) image variations on a litellm build where the provider's model-info config is not yet registered; passing an exotic/misspelled model under a supported provider so the registry lookup misses; mixing a new enum value (provider passes step 1) with an older registry.","commonSituations":"Version skew: enum members and config registry land in different litellm releases; pinning litellm to an old version while following new docs; typos in model names that skip the registry's known models.","solutions":["Upgrade litellm to the latest release so the variation provider's model info is registered.","Pass a well-known model for the provider (e.g. 'dall-e-2' for openai) so the registry hit is guaranteed.","Pre-flight check: ProviderConfigManager.get_provider_model_info(model, LlmProviders(provider)) must return non-None before you call image_variation.","If it still fails on latest, file a litellm GitHub issue — the registry is missing an entry for that provider."],"exampleFix":"# before\nresp = litellm.image_variation(model=\"topaz/unknown-model\", image=img)\n# ValueError: image variation provider has no known model info config ...\n\n# after\npip install -U litellm\nresp = litellm.image_variation(model=\"dall-e-2\", image=img)","handlingStrategy":"validation","validationCode":"from litellm.utils import ProviderConfigManager\nfrom litellm import LlmProviders\n\ninfo = ProviderConfigManager.get_provider_model_info(model=\"dall-e-2\", provider=LlmProviders.OPENAI)\nif info is None:\n    raise RuntimeError(\"installed litellm lacks model info for this variation provider; upgrade litellm\")","typeGuard":null,"tryCatchPattern":"try:\n    resp = litellm.image_variation(model=model, image=img)\nexcept ValueError as e:\n    if \"no known model info config\" in str(e):\n        raise RuntimeError(f\"litellm registry gap for {model}; upgrade litellm or use dall-e-2\") from e\n    raise","preventionTips":["Prefer well-known model ids ('dall-e-2') for the variation endpoint.","Add a startup smoke test that resolves get_provider_model_info for every variation model you expose.","Track litellm release notes for registry additions when adopting topaz or new providers."],"tags":["litellm","image-variation","provider-config","registry","version-skew"],"backgroundTag":"missing-provider-config","analyzedSha":"77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8","analyzedAt":"2026-08-18T11:44:31.656Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}