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
- Use a higher priority for latency-critical traffic, or retry after saturation decreases.
- Reduce request volume for this priority tier.
- 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.