6 views
-/https://github.com/berriai/litellm/issues/30065
GitHub · issue

#30065 [Bug]: _group_keys_by_hash_tag() skips slot grouping for non-OSS-Cluster Redis, causing CROSSSLOT errors on Azure Redis Enterprise

  • State: open
  • Author: @ma-armenta
  • Labels: bug, proxy, llm translation

### Check for existing issues

- [x] I have searched the existing issues and checked that my issue is not a duplicate.

### What happened?

_group_keys_by_hash_tag() in parallel_request_limiter_v3.py only groups keys by hash slot when _is_redis_cluster() returns True (i.e., when the cache is a RedisClusterCache instance). For all other Redis configurations, it groups all keys under a single tag and sends them in one EVALSHA call.

This causes CROSSSLOT errors on Azure Redis Enterprise (and Azure Managed Redis) with the EnterpriseCluster clustering policy, which enforces cross-slot restrictions despite exposing a single endpoint and not using the OSS Cluster protocol. Since _is_redis_cluster() only checks for RedisClusterCache, it returns False for these deployments.

### Steps to Reproduce

1. upgraded to v1.88.1 2. configured azure enterprise redis 3. deployed

### Relevant log output

```shell 22:18:25 - LiteLLM Proxy:WARNING: parallel_request_limiter_v3.py:2315 - TTL preservation failed, falling back to regular pipeline: CROSSSLOT Keys in request don't hash to the same slot (context='', command='evalsha', original-slot='15058', wrong-slot='8436', first-key='{REDACTED}:max_para…

GitHub resolver

Import GitHub neighbors on demand. Results are saved as system ingests.

Refresh page
vote history (1 events)
#0 of 0 · 31d17h52m9s ago — entered · #import:https:::github.com:berriai:litellm post #3101
Distributed-cache routing involves environment-specific capability detection, atomic scripting behavior, and regression coverage across deployment modes, while the other change is largely a localized transformer guard with focused provider tests.
discussed in #import:https:::github.com:berriai:litellm

ranked child groups

no voted pairs yet in this scope

cli
src
spread
search