{"record":{"id":"230af373adda0785","repo":"BerriAI/litellm","slug":"create-skill-is-not-supported-for-custom-llm-prov","errorCode":null,"errorMessage":"CREATE skill is not supported for {custom_llm_provider}","messagePattern":"CREATE skill is not supported for (.+?)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/skills/main.py","lineNumber":204,"sourceCode":"        if custom_llm_provider == LlmProviders.LITELLM_PROXY.value:\n            return _get_litellm_skills_handler().create_skill_handler(\n                display_title=display_title,\n                files=files,\n                metadata=_get_skill_request_metadata(kwargs, extra_body),\n                user_id=kwargs.get(\"user_id\"),\n                user_api_key_dict=_get_user_api_key_auth_from_kwargs(kwargs),\n                _is_async=_is_async,\n                logging_obj=litellm_logging_obj,\n                litellm_call_id=litellm_call_id,\n            )\n\n        # Get provider config for external providers (Anthropic, etc.)\n        skills_api_provider_config: BaseSkillsAPIConfig | None = ProviderConfigManager.get_provider_skills_api_config(\n            provider=litellm.LlmProviders(custom_llm_provider),\n        )\n\n        if skills_api_provider_config is None:\n            raise ValueError(f\"CREATE skill is not supported for {custom_llm_provider}\")\n\n        # Validate environment and get headers\n        headers = extra_headers or {}\n        headers = skills_api_provider_config.validate_environment(headers=headers, litellm_params=litellm_params)\n\n        # Transform request\n        request_body: Final = skills_api_provider_config.transform_create_skill_request(\n            create_request=create_request,\n            litellm_params=litellm_params,\n            headers=headers,\n        )\n\n        # Get API base and URL\n        from litellm.llms.anthropic.common_utils import AnthropicModelInfo\n\n        api_base: Final = AnthropicModelInfo.get_api_base(litellm_params.api_base)\n        url: Final = skills_api_provider_config.get_complete_url(api_base=api_base, endpoint=\"skills\")\n","sourceCodeStart":186,"sourceCodeEnd":222,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/skills/main.py#L186-L222","documentation":"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.","triggerScenarios":"Thrown at litellm/skills/main.py:204 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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}."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8","analyzedAt":"2026-08-18T11:44:31.656Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}