Redlock: ExecutionError: The operation was unable to achieve a quorum during its retry window / LockError: Exceeded 10 attempts to lock the resource
A distributed lock couldn't be acquired because another holder keeps it or too few Redis nodes responded.
ExecutionError: The operation was unable to achieve a quorum during its retry windowLockError: Exceeded 10 attempts to lock the resourceRedlock unable to achieve a quorumThe operation was unable to achieve a quorum during its retry windowResourceLockedError: The operation was unable to achieve a quorum Meaning
Either the lock is genuinely held (long critical section, forgotten unlock) or Redis nodes are unreachable/slow. Check TTL and retry settings (retryCount, retryDelay), ensure unlocking in finally, keep TTL longer than the work (or extend), and verify connectivity to a majority of nodes. A single Redis node is a single point of failure for correctness.
Common causes
- Lock held by another process longer than retries
- TTL expired while work still running (lock lost)
- Less than quorum of nodes reachable
- Clock/latency drift
- Missing unlock after errors
⚡ Quick fix
- Release locks in
finally; extend if work is long - Tune
retryCount/retryDelay/driftFactor - Check connectivity to all Redis nodes
Detailed fix by platform
Node.js
const lock = await redlock.acquire(["locks:job:42"], 10000); try { /* work */ } finally { await lock.release(); }
How to diagnose
- Holder — Who has the lock?
- TTL — Longer than work?
- Nodes — Reachable?
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
- BullMQ: Missing lock for job / job stalled more than allowable limit BullMQ: Error: Missing lock for job 42. moveToFinished / job stalled more than allowable limit
- BUSY Redis is busy running a script Redis: (error) BUSY Redis is busy running a script. You can only call SCRIPT KILL or SHUTDOWN NOSAVE
- Celery with Redis: tasks run twice (visibility_timeout) Celery: Task executed twice / Restoring unacked messages — Redis broker visibility_timeout shorter than task ETA
Most viewed in Redis
- READONLY You can't write against a read only replica Redis: READONLY You can't write against a read only replica
- MISCONF Redis: MISCONF Redis is configured to save RDB snapshots, but it's currently unable to persist to disk
- OOM command not allowed Redis: OOM command not allowed when used memory > 'maxmemory'
Other ways to find it
Where this error sits
Origin: Data. Errors that are often confused with or caused by this one (click to open):
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
💬 What worked for others
No tips yet — did something else fix this for you?
Share what worked for you
Tips are checked by an editor before they appear. Links are removed.
Report a correction or suggest an improvement
Last updated 5 Nov 2026