diff --git a/litellm/proxy/hooks/parallel_request_limiter_v3.py b/litellm/proxy/hooks/parallel_request_limiter_v3.py index c462493de6c..2bdfb84609f 100644 --- a/litellm/proxy/hooks/parallel_request_limiter_v3.py +++ b/litellm/proxy/hooks/parallel_request_limiter_v3.py @@ -65,6 +65,13 @@ for i = 1, #KEYS, 2 do table.insert(results, increment_value) -- counter else local counter = redis.call('INCR', counter_key) + -- FIX: Set TTL if counter key was just created (has no TTL) + -- This happens when window_key exists but counter_key doesn't (e.g., tokens key + -- created after requests key when both share the same window_key) + local current_ttl = redis.call('TTL', counter_key) + if current_ttl == -1 then + redis.call('EXPIRE', counter_key, window_size) + end table.insert(results, window_start) -- window_start table.insert(results, counter) -- counter end