The Fix
pip install redis==7.1.0
Based on closed redis/redis-py issue #3549 · PR/commit linked
Production note: This usually shows up under retries/timeouts. Treat it as a side-effect risk until you can verify behavior with a canary + real traffic.
@@ -110,5 +110,20 @@ def compute(self, failures: int) -> float:
+class ExponentialWithJitterBackoff(AbstractBackoff):
+ """Exponential backoff upon failure, with jitter"""
+
Option A — Upgrade to fixed release\npip install redis==7.1.0\nWhen NOT to use: This fix should not be used if existing backoff strategies are sufficient for your use case.\n\n
Why This Fix Works in Production
- Trigger: I've been seeing some intermittent TImeout errors with our Redis instance. I can't find any underlying reason why that might be, so I was just going to add a…
- Mechanism: Intermittent timeout errors occurred due to lack of a retry mechanism in the Redis client
- Why the fix works: Added a new backoff class for exponential backoff with jitter to handle intermittent timeout errors. (first fixed release: 7.1.0).
- If left unfixed, retry loops can amplify load and turn a small outage into a cascade (thundering herd).
Why This Breaks in Prod
- Intermittent timeout errors occurred due to lack of a retry mechanism in the Redis client
- Production symptom (often without a traceback): I've been seeing some intermittent TImeout errors with our Redis instance. I can't find any underlying reason why that might be, so I was just going to add a retry mechanism to our configuration (we currently have none).
Proof / Evidence
- GitHub issue: #3549
- Fix PR: https://github.com/redis/redis-py/pull/3550
- First fixed release: 7.1.0
- Reproduced locally: No (not executed)
- Last verified: 2026-02-08
- Confidence: 0.85
- Did this fix it?: Yes (upstream fix exists)
- Own content ratio: 0.69
Discussion
High-signal excerpts from the issue thread (symptoms, repros, edge-cases).
“Merged in https://github.com/redis/redis-py/pull/3550 Thanks for being receptive to this!”
“@JimNero009 Hi! You're right the EqualJitterBackoff is precisely what you need, but I agree it makes sense to support a combination Exponential Backoff + Jitter,…”
“Thanks Vladyslav! Expect something soon 🚀, but I think EqualJitterBackoff is perfectly fine for this particular use case I have.”
“https://github.com/redis/redis-py/pull/3550 for your perusal. I didn't see any direct tests for these classes, but point me to them if there is something.”
Failure Signature (Search String)
- I've been seeing some intermittent TImeout errors with our Redis instance. I can't find any underlying reason why that might be, so I was just going to add a retry mechanism to
Copy-friendly signature
Failure Signature
-----------------
I've been seeing some intermittent TImeout errors with our Redis instance. I can't find any underlying reason why that might be, so I was just going to add a retry mechanism to our configuration (we currently have none).
@JimNero009 You're right, there's no tests for now, please create a new file test file and add coverage for your changes
Error Message
Signature-only (no traceback captured)
Error Message
-------------
I've been seeing some intermittent TImeout errors with our Redis instance. I can't find any underlying reason why that might be, so I was just going to add a retry mechanism to our configuration (we currently have none).
@JimNero009 You're right, there's no tests for now, please create a new file test file and add coverage for your changes
What Broke
Users experienced intermittent timeouts while interacting with the Redis instance.
Why It Broke
Intermittent timeout errors occurred due to lack of a retry mechanism in the Redis client
Fix Options (Details)
Option A — Upgrade to fixed release Safe default (recommended)
pip install redis==7.1.0
Use when you can deploy the upstream fix. It is usually lower-risk than long-lived workarounds.
Fix reference: https://github.com/redis/redis-py/pull/3550
First fixed release: 7.1.0
Last verified: 2026-02-08. Validate in your environment.
When NOT to Use This Fix
- This fix should not be used if existing backoff strategies are sufficient for your use case.
Did This Fix Work in Your Case?
Quick signal helps us prioritize which fixes to verify and improve.
Prevention
- Make timeouts explicit and test them (unit + integration) to avoid silent behavior changes.
- Instrument retries (attempt count + reason) and alert on spikes to catch dependency slowdowns.
Version Compatibility Table
| Version | Status |
|---|---|
| 7.1.0 | Fixed |
Related Issues
No related fixes found.
Sources
We don’t republish the full GitHub discussion text. Use the links above for context.