BerriAI/litellm · error · ValueError

Search is not supported for provider: {search_provider}

Error message

Search is not supported for provider: {search_provider}

What it means

Thrown when resolving the search provider config: the requested search_provider string does not map to any known provider handler, so LiteLLM cannot route the search call. Usually a typo or an unsupported provider name in web_search_options/provider settings.

Source

Thrown at litellm/search/main.py:248

    try:
        litellm_logging_obj: Final[LiteLLMLoggingObj] = kwargs.pop("litellm_logging_obj")
        litellm_call_id: Final[str | None] = kwargs.get("litellm_call_id", None)
        _is_async: Final = kwargs.pop("asearch", False) is True

        # Validate query parameter
        if not isinstance(query, (str, list)):
            raise ValueError(f"query must be a string or list of strings, got {type(query)}")

        if isinstance(query, list) and not all(isinstance(q, str) for q in query):
            raise ValueError("All items in query list must be strings")

        # Get provider config
        search_provider_config: Final[BaseSearchConfig | None] = ProviderConfigManager.get_provider_search_config(
            provider=SearchProviders(search_provider),
        )

        if search_provider_config is None:
            raise ValueError(f"Search is not supported for provider: {search_provider}")

        verbose_logger.debug("Search call - provider: %s", search_provider)

        # Build optional_params from explicit parameters
        optional_params: Final = _build_search_optional_params(
            max_results=max_results,
            search_domain_filter=search_domain_filter,
            max_tokens_per_page=max_tokens_per_page,
            country=country,
        )

        # Filter out internal LiteLLM parameters from kwargs
        filtered_kwargs: Final = filter_out_litellm_params(kwargs=kwargs)

        # Add remaining kwargs to optional_params (for provider-specific params)
        for key, value in filtered_kwargs.items():
            if key not in optional_params:
                optional_params[key] = value

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Use a provider that implements search (e.g. perplexity, tavily, exa) instead of {search_provider}.
  2. Check litellm's supported search providers list and set search_provider accordingly, or implement a custom search provider.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at litellm/search/main.py:248 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of BerriAI/litellm@77b7c6c40c (2026-08-18). Data as JSON: /api/errors/4a4f6650baeb492f. Report an issue: GitHub.