{"record":{"id":"f4f0dca1e8be8775","repo":"BerriAI/litellm","slug":"no-model-configured-for-tier-tier-key-and-no-def","errorCode":null,"errorMessage":"No model configured for tier {tier_key} and no default_model set","messagePattern":"No model configured for tier (.+?) and no default_model set","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/router_strategy/complexity_router/complexity_router.py","lineNumber":1168,"sourceCode":"        Args:\n            tier: The complexity tier.\n\n        Returns:\n            The model name configured for that tier.\n        \"\"\"\n        tier_key: Final = tier.value if isinstance(tier, ComplexityTier) else tier\n\n        if tier_key in self.config.tiers:\n            return self._pick_from_tier_value(self.config.tiers[tier_key], tier_key)\n\n        if self.config.default_model:\n            return self.config.default_model\n\n        medium_key: Final = ComplexityTier.MEDIUM.value\n        if medium_key in self.config.tiers:\n            return self._pick_from_tier_value(self.config.tiers[medium_key], medium_key)\n\n        raise ValueError(f\"No model configured for tier {tier_key} and no default_model set\")\n\n    @staticmethod\n    def _pick_from_tier_value(model: str | list[str], tier_key: str) -> str:\n        if isinstance(model, str):\n            return model\n        if not model:\n            raise ValueError(f\"Empty model pool for tier {tier_key}\")\n        return random.choice(model)\n\n    def _tier_pools(self) -> dict[str, list[str]]:\n        return {tier: (models if isinstance(models, list) else [models]) for tier, models in self.config.tiers.items()}\n\n    async def _pick_model_for_tier(\n        self,\n        tier: ComplexityTier,\n        raw_messages: list[dict[str, Any]] | None,\n        resolved_messages: list[dict[str, Any]] | None,\n        request_kwargs: dict,","sourceCodeStart":1150,"sourceCodeEnd":1186,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/router_strategy/complexity_router/complexity_router.py#L1150-L1186","documentation":"Routing guard in the complexity router: neither the requested tier, nor medium as fallback, nor any other configured tier, nor default_model is set, so no model name can be produced for the request.","triggerScenarios":"Thrown at litellm/router_strategy/complexity_router/complexity_router.py:1168 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Configure a model pool for the tier or set a default_model."],"exampleFix":null,"handlingStrategy":"fallback","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-14T00:17:10.932Z"}