{"record":{"id":"ae79d4e096684a37","repo":"BerriAI/litellm","slug":"no-budget-config-found-for-provider-provider-pr","errorCode":null,"errorMessage":"No budget config found for provider {provider}, provider_budget_config: {self.provider_budget_config}","messagePattern":"No budget config found for provider (.+?), provider_budget_config: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/router_strategy/budget_limiter.py","lineNumber":759,"sourceCode":"\n        if litellm.tag_budget_config is not None:\n            return True\n\n        if model_list is None:\n            return False\n\n        for _model in model_list:\n            _litellm_params = _model.get(\"litellm_params\", {})\n            if _litellm_params.get(\"max_budget\") or _litellm_params.get(\"budget_duration\") is not None:\n                return True\n        return False\n\n    def _init_provider_budgets(self):\n        if self.provider_budget_config is not None:\n            # cast elements of provider_budget_config to GenericBudgetInfo\n            for provider, config in self.provider_budget_config.items():\n                if config is None:\n                    raise ValueError(\n                        f\"No budget config found for provider {provider}, provider_budget_config: {self.provider_budget_config}\"\n                    )\n\n                if not isinstance(config, GenericBudgetInfo):\n                    self.provider_budget_config[provider] = GenericBudgetInfo(\n                        budget_limit=config.get(\"budget_limit\"),\n                        time_period=config.get(\"time_period\"),\n                    )\n                asyncio.create_task(\n                    self._init_provider_budget_in_cache(\n                        provider=provider,\n                        budget_config=self.provider_budget_config[provider],\n                    )\n                )\n\n            verbose_router_logger.debug(\"Initalized Provider budget config: %s\", self.provider_budget_config)\n\n    def _init_deployment_budgets(","sourceCodeStart":741,"sourceCodeEnd":777,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/router_strategy/budget_limiter.py#L741-L777","documentation":"Budget accounting guard: a provider appears in deployment spend tracking but has no entry in provider_budget_config, so the router cannot determine that provider's budget limit; the config map is included for debugging.","triggerScenarios":"Thrown at litellm/router_strategy/budget_limiter.py:759 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Add a budget config entry for the provider in provider_budget_config."],"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"}