Pin redis client to RESP2 for compatibility with deployed Redis v4#6025
Merged
Merged
Conversation
redis-py 8 defaults connections to RESP3, whose HELLO handshake the deployed Redis v4 server rejects. Override the client-wide default back to RESP2 to cover all connection paths (cache, native RedisCache, kombu). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BYYEYww8xJuFsjkLRbHqsn
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Pin the redis protocol to RESP2 rather than the redis-py 8 default of RESP3, for backwards compatibility with the older deployed Redis server (v4). RESP3's
HELLOhandshake is rejected by Redis < 6, breaking every connection.References
Reviewer guidance
contentcuration/contentcuration/settings.pyoverridesDEFAULT_RESP_VERSIONglobally — the one lever that reaches all three connection paths (django-redis cache, nativeRedisCache, kombu/Celery broker).AI usage
Used Claude Code to trace the breakage to redis-py 8 switching its default to RESP3 and to implement the global RESP2 override.