{"record":{"id":"251aa3e1389e0c8d","repo":"BerriAI/litellm","slug":"api-base-is-required-for-provider-provider-slug","errorCode":null,"errorMessage":"api_base is required for provider {provider.slug}","messagePattern":"api_base is required for provider (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/llms/openai_like/dynamic_config.py","lineNumber":85,"sourceCode":"            resolved_key: Final = api_key or get_secret_str(provider.api_key_env)\n\n            return resolved_base, resolved_key\n\n        def get_complete_url(\n            self,\n            api_base: str | None,\n            api_key: str | None,\n            model: str,\n            optional_params: dict,\n            litellm_params: dict,\n            stream: bool | None = None,\n        ) -> str:\n            \"\"\"Build complete URL for the API endpoint\"\"\"\n            if not api_base:\n                api_base = provider.base_url\n\n            if api_base is None:\n                raise ValueError(f\"api_base is required for provider {provider.slug}\")\n\n            if not api_base.endswith(\"/chat/completions\"):\n                api_base = f\"{api_base}/chat/completions\"\n\n            return api_base\n\n        def get_supported_openai_params(self, model: str) -> list:\n            \"\"\"Get supported OpenAI params, excluding tool-related params for models\n            that don't support function calling.\"\"\"\n            from litellm.utils import supports_function_calling, supports_reasoning\n\n            supported_params: Final = super().get_supported_openai_params(model=model)\n\n            _supports_fc: Final = supports_function_calling(model=model, custom_llm_provider=provider.slug)\n\n            if not _supports_fc:\n                tool_params: Final = [\n                    \"tools\",","sourceCodeStart":67,"sourceCodeEnd":103,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/llms/openai_like/dynamic_config.py#L67-L103","documentation":"Configuration guard in the dynamic OpenAI-like provider's get_complete_url: neither the request api_base nor provider.base_url is set, so the complete endpoint URL for this registered provider slug cannot be composed.","triggerScenarios":"Thrown at litellm/llms/openai_like/dynamic_config.py:85 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Configure api_base for the provider slug shown in the message, via params or its environment variable."],"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"}