{"record":{"id":"8da485ff134a0a8e","repo":"BerriAI/litellm","slug":"qualityrouter-complexity-tier-complexity-name","errorCode":null,"errorMessage":"QualityRouter: complexity tier '{complexity_name}' not present in complexity_to_quality mapping {self.config.complexity_to_quality}","messagePattern":"QualityRouter: complexity tier '(.+?)' not present in complexity_to_quality mapping (.+?)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/router_strategy/quality_router/quality_router.py","lineNumber":414,"sourceCode":"                cause=\"keyword\",\n                matched_keyword=matched_keyword,\n            )\n            keyword_quality_tier: Final = self._model_quality.get(routed_model)\n            if keyword_quality_tier is not None:\n                routing_decision[\"tier\"] = str(keyword_quality_tier)\n            return PreRoutingHookResponse(\n                model=routed_model,\n                messages=messages,\n                routing_decision=routing_decision,\n            )\n\n        # No keyword match → complexity classification flow.\n        complexity_tier, score, signals = self._scorer.classify(user_message, system_prompt)\n        complexity_name: Final = complexity_tier.value if hasattr(complexity_tier, \"value\") else str(complexity_tier)\n\n        quality_tier: Final = self.config.complexity_to_quality.get(complexity_name)\n        if quality_tier is None:\n            raise ValueError(\n                f\"QualityRouter: complexity tier '{complexity_name}' not present \"\n                f\"in complexity_to_quality mapping {self.config.complexity_to_quality}\"\n            )\n\n        routed_model = self._resolve_model_for_quality_tier(int(quality_tier))\n\n        verbose_router_logger.info(\n            f\"QualityRouter: complexity={complexity_name}, score={score:.3f}, \"\n            f\"signals={signals}, quality_tier={quality_tier}, \"\n            f\"routed_model={routed_model}\"\n        )\n\n        self._stash_decision(\n            request_kwargs,\n            {\n                \"router_model_name\": self.model_name,\n                \"routed_model\": routed_model,\n                \"routed_via\": \"quality_tier\",","sourceCodeStart":396,"sourceCodeEnd":432,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/router_strategy/quality_router/quality_router.py#L396-L432","documentation":"Routing failure in QualityRouter: complexity classification produced a tier that has no entry in the configured complexity_to_quality mapping, so it cannot be translated into a quality tier and model.","triggerScenarios":"Thrown at litellm/router_strategy/quality_router/quality_router.py:414 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Add the complexity tier to the complexity_to_quality mapping in the QualityRouter 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"}