diff --git a/litellm/_redis.py b/litellm/_redis.py index 2fba9d146..d905f1c9d 100644 --- a/litellm/_redis.py +++ b/litellm/_redis.py @@ -313,12 +313,13 @@ def get_redis_async_client(**env_overrides) -> async_redis.Redis: def get_redis_connection_pool(**env_overrides): redis_kwargs = _get_redis_client_logic(**env_overrides) + verbose_logger.debug("get_redis_connection_pool: redis_kwargs", redis_kwargs) if "url" in redis_kwargs and redis_kwargs["url"] is not None: return async_redis.BlockingConnectionPool.from_url( timeout=5, url=redis_kwargs["url"] ) connection_class = async_redis.Connection - if "ssl" in redis_kwargs and redis_kwargs["ssl"] is not None: + if "ssl" in redis_kwargs: connection_class = async_redis.SSLConnection redis_kwargs.pop("ssl", None) redis_kwargs["connection_class"] = connection_class diff --git a/tests/local_testing/test_caching_ssl.py b/tests/local_testing/test_caching_ssl.py index 0825a8537..1b642f767 100644 --- a/tests/local_testing/test_caching_ssl.py +++ b/tests/local_testing/test_caching_ssl.py @@ -99,3 +99,29 @@ def test_caching_router(): # test_caching_router() +@pytest.mark.asyncio +async def test_redis_with_ssl(): + """ + Test connecting to redis connection pool when ssl=None + + + Relevant issue: + User was seeing this error: `TypeError: AbstractConnection.__init__() got an unexpected keyword argument 'ssl'` + """ + from litellm._redis import get_redis_connection_pool, get_redis_async_client + + # Get the connection pool with SSL + # REDIS_HOST_WITH_SSL is just a redis cloud instance with Transport layer security (TLS) enabled + pool = get_redis_connection_pool( + host=os.environ.get("REDIS_HOST_WITH_SSL"), + port=os.environ.get("REDIS_PORT_WITH_SSL"), + password=os.environ.get("REDIS_PASSWORD_WITH_SSL"), + ssl=None, + ) + + # Create Redis client with the pool + redis_client = get_redis_async_client(connection_pool=pool) + + print("pinging redis") + print(await redis_client.ping()) + print("pinged redis")