BerriAI/litellm · error · ProxyRateLimitError

Key={user_api_key_dict.api_key} over available TPM={availabl

Error message

Key={user_api_key_dict.api_key} over available TPM={available_tpm}. Model TPM={model_tpm}, Active keys={active_projects}

What it means

Error "Key={user_api_key_dict.api_key} over available TPM={available_tpm}. Model TPM={model_tpm}, Active keys={active_projects}" thrown in BerriAI/litellm.

Source

Thrown at litellm/proxy/hooks/dynamic_rate_limiter.py:208

    ):  # raise exception if invalid, return a str for the user to receive - if rejected, or return a modified dictionary for passing into litellm
        """
        - For a model group
        - Check if tpm/rpm available
        - Raise RateLimitError if no tpm/rpm available
        """
        if "model" in data:
            key_priority: Final[str | None] = user_api_key_dict.metadata.get("priority", None)
            (
                available_tpm,
                available_rpm,
                model_tpm,
                model_rpm,
                active_projects,
            ) = await self.check_available_usage(model=data["model"], priority=key_priority)
            ### CHECK TPM ###
            if available_tpm is not None and available_tpm == 0:
                resolved_model, llm_provider = resolve_llm_provider_for_rate_limit(data.get("model"))
                raise ProxyRateLimitError(
                    detail={
                        "error": f"Key={user_api_key_dict.api_key} over available TPM={available_tpm}. Model TPM={model_tpm}, Active keys={active_projects}"
                    },
                    rate_limit_type=RateLimitType.TOKENS,
                    model=resolved_model,
                    llm_provider=llm_provider,
                )
            ### CHECK RPM ###
            elif available_rpm is not None and available_rpm == 0:
                resolved_model, llm_provider = resolve_llm_provider_for_rate_limit(data.get("model"))
                raise ProxyRateLimitError(
                    detail={
                        "error": f"Key={user_api_key_dict.api_key} over available RPM={available_rpm}. Model RPM={model_rpm}, Active keys={active_projects}"
                    },
                    rate_limit_type=RateLimitType.REQUESTS,
                    model=resolved_model,
                    llm_provider=llm_provider,
                )

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Reduce request token throughput for this key.
  2. Wait for other active keys' usage to subside so TPM frees up.
  3. Request a higher TPM allocation for the model.

When it happens

Trigger: Thrown at litellm/proxy/hooks/dynamic_rate_limiter.py:208 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/42f8dbb14b6e63f6. Report an issue: GitHub.