BerriAI/litellm · error · ValueError

QualityRouter: complexity tier '{complexity_name}' not prese

Error message

QualityRouter: complexity tier '{complexity_name}' not present in complexity_to_quality mapping {self.config.complexity_to_quality}

What it means

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.

Source

Thrown at litellm/router_strategy/quality_router/quality_router.py:414

                cause="keyword",
                matched_keyword=matched_keyword,
            )
            keyword_quality_tier: Final = self._model_quality.get(routed_model)
            if keyword_quality_tier is not None:
                routing_decision["tier"] = str(keyword_quality_tier)
            return PreRoutingHookResponse(
                model=routed_model,
                messages=messages,
                routing_decision=routing_decision,
            )

        # No keyword match → complexity classification flow.
        complexity_tier, score, signals = self._scorer.classify(user_message, system_prompt)
        complexity_name: Final = complexity_tier.value if hasattr(complexity_tier, "value") else str(complexity_tier)

        quality_tier: Final = self.config.complexity_to_quality.get(complexity_name)
        if quality_tier is None:
            raise ValueError(
                f"QualityRouter: complexity tier '{complexity_name}' not present "
                f"in complexity_to_quality mapping {self.config.complexity_to_quality}"
            )

        routed_model = self._resolve_model_for_quality_tier(int(quality_tier))

        verbose_router_logger.info(
            f"QualityRouter: complexity={complexity_name}, score={score:.3f}, "
            f"signals={signals}, quality_tier={quality_tier}, "
            f"routed_model={routed_model}"
        )

        self._stash_decision(
            request_kwargs,
            {
                "router_model_name": self.model_name,
                "routed_model": routed_model,
                "routed_via": "quality_tier",

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Add the complexity tier to the complexity_to_quality mapping in the QualityRouter config.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at litellm/router_strategy/quality_router/quality_router.py:414 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of BerriAI/litellm@77b7c6c40c (2026-08-18). Data as JSON: /api/errors/8da485ff134a0a8e. Report an issue: GitHub.