BerriAI/litellm · error · ValueError

Unsupported provider config: {transcription_provider_config}

Error message

Unsupported provider config: {transcription_provider_config} for model: {model}

What it means

Thrown while resolving supported OpenAI params for a transcription request (custom_llm_provider='openai', request_type='transcription'). ProviderConfigManager.get_provider_audio_transcription_config() is expected to return an OpenAIGPTAudioTranscriptionConfig instance; if the registry returns any other config class (or None), LiteLLM treats the provider/model combination as unsupported for transcription param mapping and raises this ValueError. It almost always indicates a mismatch between the installed LiteLLM version's provider-config registry and the code path resolving it.

Source

Thrown at litellm/litellm_core_utils/get_supported_openai_params.py:123

    elif custom_llm_provider == "vllm":
        return litellm.VLLMConfig().get_supported_openai_params(model=model)
    elif custom_llm_provider == "deepseek":
        return litellm.DeepSeekChatConfig().get_supported_openai_params(model=model)
    elif custom_llm_provider == "tencent":
        return litellm.TencentChatConfig().get_supported_openai_params(model=model)
    elif custom_llm_provider == "cohere_chat" or custom_llm_provider == "cohere":
        return litellm.CohereChatConfig().get_supported_openai_params(model=model)
    elif custom_llm_provider == "maritalk":
        return litellm.MaritalkConfig().get_supported_openai_params(model=model)
    elif custom_llm_provider == "openai":
        if request_type == "transcription":
            transcription_provider_config = litellm.ProviderConfigManager.get_provider_audio_transcription_config(
                model=model, provider=LlmProviders.OPENAI
            )
            if isinstance(transcription_provider_config, litellm.OpenAIGPTAudioTranscriptionConfig):
                return transcription_provider_config.get_supported_openai_params(model=model)
            else:
                raise ValueError(f"Unsupported provider config: {transcription_provider_config} for model: {model}")
        return litellm.OpenAIConfig().get_supported_openai_params(model=model)
    elif custom_llm_provider == "sap":
        if request_type == "chat_completion":
            return litellm.GenAIHubOrchestrationConfig().get_supported_openai_params(model=model)
        elif request_type == "embeddings":
            return litellm.GenAIHubEmbeddingConfig().get_supported_openai_params(model=model)
    elif custom_llm_provider == "azure":
        _azure_detection_model: Final = base_model or model
        if litellm.AzureOpenAIO1Config().is_o_series_model(model=_azure_detection_model):
            return litellm.AzureOpenAIO1Config().get_supported_openai_params(model=_azure_detection_model)
        elif litellm.AzureOpenAIGPT5Config.is_model_gpt_5_model(model=_azure_detection_model):
            return litellm.AzureOpenAIGPT5Config().get_supported_openai_params(model=_azure_detection_model)
        else:
            return litellm.AzureOpenAIConfig().get_supported_openai_params(model=_azure_detection_model)
    elif custom_llm_provider == "openrouter":
        return litellm.OpenrouterConfig().get_supported_openai_params(model=model)
    elif custom_llm_provider == "vercel_ai_gateway":
        return litellm.VercelAIGatewayConfig().get_supported_openai_params(model=model)

View on GitHub (pinned to 6c2dcb801b)

Solutions

  1. Upgrade (or cleanly reinstall) litellm so the provider-config registry and this branch agree: pip install -U --force-reinstall litellm
  2. Clear stale bytecode/caches (__pycache__, PYTHONPYCACHEPREFIX) and restart the process if the error appears right after an upgrade
  3. Pin to a known-good version (e.g. pip install 'litellm==<version where transcription last worked>') until the mismatch is fixed
  4. If you maintain a fork, update the isinstance check to accept the config class your registry returns, or ensure get_provider_audio_transcription_config returns OpenAIGPTAudioTranscriptionConfig for provider=openai

Example fix

# before
litellm.transcription(model='gpt-4o-transcribe', file=audio_file)  # ValueError from get_supported_openai_params

# after (upgrade so registry matches)
pip install -U litellm
litellm.transcription(model='whisper-1', file=audio_file)
Defensive patterns

Strategy: fallback

Validate before calling

import litellm
from litellm.types.utils import LlmProviders

cfg = litellm.ProviderConfigManager.get_provider_audio_transcription_config(
    model=model, provider=LlmProviders.OPENAI
)
if not isinstance(cfg, litellm.OpenAIGPTAudioTranscriptionConfig):
    # registry/version mismatch: pin/upgrade litellm or skip param mapping
    raise RuntimeError('litellm provider-config registry mismatch; upgrade litellm')

Try / catch

try:
    litellm.transcription(model=model, file=audio_file)
except ValueError as e:
    if 'Unsupported provider config' in str(e):
        # fall back to a known transcription model
        litellm.transcription(model='whisper-1', file=audio_file)
    else:
        raise

Prevention

When it happens

Trigger: Calling litellm.transcription(...) (or router/proxy /v1/audio/transcriptions) with a model routed to provider 'openai', where get_supported_openai_params(model=..., request_type='transcription') runs and the audio-transcription config registry returns a class other than OpenAIGPTAudioTranscriptionConfig (e.g. after a partial upgrade, a forked registry, or a new transcription config class that this branch was not updated to accept).

Common situations: Upgrading LiteLLM to a version that added new audio transcription provider configs while stale compiled/cached modules remain; using a custom/forked model_prices or provider config registry; calling transcription with GPT-4o-transcribe style models on an older LiteLLM that maps them to the wrong config class.

Related errors


AI-assisted analysis of BerriAI/litellm@6c2dcb801b (2026-08-15). Data as JSON: /api/errors/a4a3dfbb8936052b. Report an issue: GitHub.