BerriAI/litellm · error · ValueError

CREATE skill is not supported for {custom_llm_provider}

Error message

CREATE skill is not supported for {custom_llm_provider}

What it means

Terminal guard in the skill create path: routing resolved a custom_llm_provider that has no registered skills provider config (only litellm_proxy and a few external providers support skill creation). Sentinel ValueError naming the unsupported provider.

Source

Thrown at litellm/skills/main.py:204

        if custom_llm_provider == LlmProviders.LITELLM_PROXY.value:
            return _get_litellm_skills_handler().create_skill_handler(
                display_title=display_title,
                files=files,
                metadata=_get_skill_request_metadata(kwargs, extra_body),
                user_id=kwargs.get("user_id"),
                user_api_key_dict=_get_user_api_key_auth_from_kwargs(kwargs),
                _is_async=_is_async,
                logging_obj=litellm_logging_obj,
                litellm_call_id=litellm_call_id,
            )

        # Get provider config for external providers (Anthropic, etc.)
        skills_api_provider_config: BaseSkillsAPIConfig | None = ProviderConfigManager.get_provider_skills_api_config(
            provider=litellm.LlmProviders(custom_llm_provider),
        )

        if skills_api_provider_config is None:
            raise ValueError(f"CREATE skill is not supported for {custom_llm_provider}")

        # Validate environment and get headers
        headers = extra_headers or {}
        headers = skills_api_provider_config.validate_environment(headers=headers, litellm_params=litellm_params)

        # Transform request
        request_body: Final = skills_api_provider_config.transform_create_skill_request(
            create_request=create_request,
            litellm_params=litellm_params,
            headers=headers,
        )

        # Get API base and URL
        from litellm.llms.anthropic.common_utils import AnthropicModelInfo

        api_base: Final = AnthropicModelInfo.get_api_base(litellm_params.api_base)
        url: Final = skills_api_provider_config.get_complete_url(api_base=api_base, endpoint="skills")

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Use a provider that supports the skills API (e.g. anthropic) for skill creation.
  2. Implement create_skill in a custom LLM provider wrapper for {custom_llm_provider}.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at litellm/skills/main.py:204 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/230af373adda0785. Report an issue: GitHub.