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
- Upgrade (or cleanly reinstall) litellm so the provider-config registry and this branch agree: pip install -U --force-reinstall litellm
- Clear stale bytecode/caches (__pycache__, PYTHONPYCACHEPREFIX) and restart the process if the error appears right after an upgrade
- Pin to a known-good version (e.g. pip install 'litellm==<version where transcription last worked>') until the mismatch is fixed
- 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
- Pin litellm to an exact version in requirements to keep the provider-config registry stable
- Run a smoke transcription call in CI after any litellm upgrade
- Avoid mixing cached .pyc/old installs across upgrades; reinstall cleanly
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
- Unclassified keys in {PRICES_PATH.name}: {', '.join(unclassi
- No Braintrust API token provided. Pass via Authorization hea
- Braintrust API error: {e.response.text}
- Failed to connect to Braintrust API: {str(e)}
- Failed to parse Braintrust API response: {str(e)}
AI-assisted analysis of BerriAI/litellm@6c2dcb801b (2026-08-15).
Data as JSON: /api/errors/a4a3dfbb8936052b.
Report an issue: GitHub.