BerriAI/litellm · error · ProxyRateLimitError

Priority-based rate limit exceeded. Model: {model}, Priority

Error message

Priority-based rate limit exceeded. Model: {model}, Priority: {priority}, Rate limit type: {status['rate_limit_type']}, Model TPM: {model_group_info.tpm if model_group_info.tpm is not None else 'not configured'}, Model RPM: {model_group_info.rpm if model_group_info.rpm is not None else 'not configured'}, Remaining: {status['limit_remaining']}, Model saturation: {saturation:.1%}

What it means

Error "Priority-based rate limit exceeded. Model: {model}, Priority: {priority}, Rate limit type: {status['rate_limit_type']}, Model TPM: {model_group_info.tpm if model_group_info.tpm is not None else 'not configured'}, Model RPM: {model_group_info.rpm if model_group_info.rpm is not None else 'not configured'}, Remaining: {status['limit_remaining']}, Model saturation: {saturation:.1%}" thrown in BerriAI/litellm.

Source

Thrown at litellm/proxy/hooks/dynamic_rate_limiter_v3.py:488

                            f"Rate limit type: {status['rate_limit_type']}, "
                            f"Model TPM: {model_group_info.tpm if model_group_info.tpm is not None else 'not configured'}, "
                            f"Model RPM: {model_group_info.rpm if model_group_info.rpm is not None else 'not configured'}, "
                            f"Remaining: {status['limit_remaining']}"
                        },
                        headers={
                            "retry-after": str(self.v3_limiter.window_size),
                            "rate_limit_type": str(status["rate_limit_type"]),
                            "x-litellm-priority": priority or "default",
                        },
                        rate_limit_type=map_v3_rate_limit_type(status["rate_limit_type"]),
                        model=resolved_model,
                        llm_provider=llm_provider,
                    )
                if descriptor_key == "priority_model":
                    verbose_proxy_logger.debug(
                        f"Enforcing priority limits for {model}, saturation: {saturation:.1%}, priority: {priority}"
                    )
                    raise ProxyRateLimitError(
                        detail={
                            "error": f"Priority-based rate limit exceeded. "
                            f"Model: {model}, "
                            f"Priority: {priority}, "
                            f"Rate limit type: {status['rate_limit_type']}, "
                            f"Model TPM: {model_group_info.tpm if model_group_info.tpm is not None else 'not configured'}, "
                            f"Model RPM: {model_group_info.rpm if model_group_info.rpm is not None else 'not configured'}, "
                            f"Remaining: {status['limit_remaining']}, "
                            f"Model saturation: {saturation:.1%}"
                        },
                        headers={
                            "retry-after": str(self.v3_limiter.window_size),
                            "rate_limit_type": str(status["rate_limit_type"]),
                            "x-litellm-priority": priority or "default",
                            "x-litellm-saturation": f"{saturation:.2%}",
                        },
                        rate_limit_type=map_v3_rate_limit_type(status["rate_limit_type"]),
                        model=resolved_model,

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Use a higher priority for latency-critical traffic, or retry after saturation decreases.
  2. Reduce request volume for this priority tier.
  3. Raise the model TPM/RPM limits.

When it happens

Trigger: Thrown at litellm/proxy/hooks/dynamic_rate_limiter_v3.py:488 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/ff2f937316fd427c. Report an issue: GitHub.