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
- Use a provider that supports the skills API (e.g. anthropic) for skill creation.
- 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.