BerriAI/litellm · warning · Exception

Unable to health check wildcard model for provider {custom_l

Error message

Unable to health check wildcard model for provider {custom_llm_provider}. Add a model on your config.yaml or contribute here - https://github.com/BerriAI/litellm/blob/main/model_prices_and_context_window.json

What it means

Raised when the proxy health check (or a caller of _run_health_check for a wildcard model) tries to health-check a wildcard deployment such as 'openai/*'. LiteLLM attempts to substitute a concrete cheap model from the known model list (model_prices_and_context_window.json / config.yaml); if the provider has zero known chat models, it cannot pick anything and raises this Exception telling you to add a model.

Source

Thrown at litellm/litellm_core_utils/health_check_helpers.py:33


class HealthCheckHelpers:
    @staticmethod
    async def ahealth_check_wildcard_models(
        model: str,
        custom_llm_provider: str,
        model_params: dict,
        litellm_logging_obj: "Logging",
    ) -> dict:
        from litellm import acompletion
        from litellm.litellm_core_utils.llm_request_utils import (
            pick_cheapest_chat_models_from_llm_provider,
        )

        # this is a wildcard model, we need to pick a random model from the provider
        cheapest_models = pick_cheapest_chat_models_from_llm_provider(custom_llm_provider=custom_llm_provider, n=3)
        if len(cheapest_models) == 0:
            raise Exception(
                f"Unable to health check wildcard model for provider {custom_llm_provider}. Add a model on your config.yaml or contribute here - https://github.com/BerriAI/litellm/blob/main/model_prices_and_context_window.json"
            )
        if len(cheapest_models) > 1:
            fallback_models = cheapest_models[1:]  # Pick the last 2 models from the shuffled list
        else:
            fallback_models = None
        model_params["model"] = cheapest_models[0]
        model_params["litellm_logging_obj"] = litellm_logging_obj
        model_params["fallbacks"] = fallback_models
        model_params["max_tokens"] = model_params.get("max_tokens", 16)  # GPT-5 models require max_output_tokens >= 16
        await acompletion(**model_params)
        return {}

    @staticmethod
    def _update_model_params_with_health_check_tracking_information(
        model_params: dict,
    ) -> dict:
        """

View on GitHub (pinned to 6c2dcb801b)

Solutions

  1. Add at least one concrete model with model_info for that provider to your config.yaml deployments so the health check has a model to pick
  2. Update LiteLLM so the bundled model_prices_and_context_window.json includes chat models for the provider (pip install -U litellm)
  3. Contribute missing model entries to model_prices_and_context_window.json upstream (the error links the file)
  4. Health-check a concrete model name instead of the wildcard deployment

Example fix

# before (config.yaml)
model_list:
  - model_name: "my-wildcard"
    litellm_params:
      model: "newprovider/*"
      api_key: os.environ/NEWPROVIDER_API_KEY

# after: give the health check a concrete model to sample
model_list:
  - model_name: "my-wildcard"
    litellm_params:
      model: "newprovider/*"
      api_key: os.environ/NEWPROVIDER_API_KEY
  - model_name: "my-concrete"
    litellm_params:
      model: "newprovider/known-chat-model"
      api_key: os.environ/NEWPROVIDER_API_KEY
Defensive patterns

Strategy: try-catch

Validate before calling

from litellm.litellm_core_utils.llm_request_utils import pick_cheapest_chat_models_from_llm_provider

if not pick_cheapest_chat_models_from_llm_provider(custom_llm_provider=provider, n=1):
    print(f'No known chat models for {provider}; add one to config.yaml before health checks')

Try / catch

try:
    router.health_check()
except Exception as e:
    if 'Unable to health check wildcard model' in str(e):
        # non-fatal: health endpoint only; log and continue
        logging.warning('Wildcard health check unavailable: %s', e)
    else:
        raise

Prevention

When it happens

Trigger: Hitting the proxy /health or /health/liveliness endpoints (or calling the health-check helper) with a wildcard model deployment like 'vertex_ai/*', 'groq/*' for a provider that has no chat entries in the bundled model_prices_and_context_window.json and no matching model_info entries in your config.yaml.

Common situations: Using a niche or new provider with wildcard routing; running an older LiteLLM whose model_prices file lacks entries for your provider; config.yaml that only declares the wildcard model without model_info pricing entries.

Related errors


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