From afc65f2b42e82217d94ab8f698c7e55adbf61a9f Mon Sep 17 00:00:00 2001 From: Kristin Cowalcijk Date: Mon, 13 Apr 2026 02:03:49 +0800 Subject: [PATCH] fix Redis Sentinel authentication handling --- litellm/_redis.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/litellm/_redis.py b/litellm/_redis.py index f12afbac297..5d884a28162 100644 --- a/litellm/_redis.py +++ b/litellm/_redis.py @@ -307,6 +307,10 @@ def _init_redis_sentinel(redis_kwargs) -> redis.Redis: sentinel_nodes = redis_kwargs.get("sentinel_nodes") sentinel_password = redis_kwargs.get("sentinel_password") service_name = redis_kwargs.get("service_name") + master_kwargs = {} + + if redis_kwargs.get("password") is not None: + master_kwargs["password"] = redis_kwargs.get("password") if not sentinel_nodes or not service_name: raise ValueError( @@ -319,18 +323,24 @@ def _init_redis_sentinel(redis_kwargs) -> redis.Redis: sentinel = redis.Sentinel( sentinel_nodes, socket_timeout=REDIS_SOCKET_TIMEOUT, - password=sentinel_password, + sentinel_kwargs={"password": sentinel_password} + if sentinel_password is not None + else None, ) # Return the master instance for the given service - return sentinel.master_for(service_name) + return sentinel.master_for(service_name, **master_kwargs) def _init_async_redis_sentinel(redis_kwargs) -> async_redis.Redis: sentinel_nodes = redis_kwargs.get("sentinel_nodes") sentinel_password = redis_kwargs.get("sentinel_password") service_name = redis_kwargs.get("service_name") + master_kwargs = {} + + if redis_kwargs.get("password") is not None: + master_kwargs["password"] = redis_kwargs.get("password") if not sentinel_nodes or not service_name: raise ValueError( @@ -343,12 +353,14 @@ def _init_async_redis_sentinel(redis_kwargs) -> async_redis.Redis: sentinel = async_redis.Sentinel( sentinel_nodes, socket_timeout=REDIS_SOCKET_TIMEOUT, - password=sentinel_password, + sentinel_kwargs={"password": sentinel_password} + if sentinel_password is not None + else None, ) # Return the master instance for the given service - return sentinel.master_for(service_name) + return sentinel.master_for(service_name, **master_kwargs) def get_redis_client(**env_overrides):