infiniflow/ragflow · error · Exception
Invalid rate_limit.per: {per}
Error message
Invalid rate_limit.per: {per} What it means
Error "Invalid rate_limit.per: {per}" thrown in infiniflow/ragflow.
Source
Thrown at api/apps/restful_apis/agent_api.py:1991
"""Simple in-memory rate limiting."""
rl = security_cfg.get("rate_limit")
if not rl:
rl = {"limit": 60, "per": "minute"}
limit = int(rl.get("limit", 60))
if limit <= 0:
raise Exception("rate_limit.limit must be > 0")
per = rl.get("per", "minute")
window = {
"second": 1,
"minute": 60,
"hour": 3600,
"day": 86400,
}.get(per)
if not window:
raise Exception(f"Invalid rate_limit.per: {per}")
capacity = limit
rate = limit / window
cost = 1
key = f"rl:tb:{agent_id}"
now = time.time()
try:
from rag.utils.redis_conn import REDIS_CONN
res = REDIS_CONN.lua_token_bucket(
keys=[key],
args=[capacity, rate, now, cost],
client=REDIS_CONN.REDIS,
)
allowed = int(res[0])View on GitHub (pinned to 554fb1133a)
Solutions
- Use a supported rate_limit.per unit (e.g. 'second', 'minute', 'hour').
Example fix
webhook_config = {'rate_limit': {'limit': 60, 'per': 'minute'}} When it happens
Trigger: Thrown at api/apps/restful_apis/agent_api.py:1991 when the library encounters an invalid state.
Common situations: The rate limit period uses an unsupported time unit; choosing a documented unit prevents this error.
AI-assisted analysis of infiniflow/ragflow@554fb1133a (2026-08-15).
Data as JSON: /api/errors/89fb3df87f4d8110.
Report an issue: GitHub.