NOSCRIPT: NOSCRIPT No matching script. Please use EVAL
RedisWhat does it mean?
The SHA1 digest of the Lua script called with EVALSHA was not found in the server's script cache. Redis does not know a script corresponding to this hash.
Why does it happen?
The server was restarted or the script cache was cleared with SCRIPT FLUSH, the script was never loaded, or the cache is empty on the new node after a failover.
How to fix it
Run the script with its full body via EVAL (Redis caches it automatically), or load it first with SCRIPT LOAD and use the returned SHA in EVALSHA. In the application, catch the NOSCRIPT error and implement fallback logic from EVALSHA to EVAL. Many Redis client libraries do this automatically.
More from this engine
- CROSSSLOTCROSSSLOT Keys in request don't hash to the same slot
- MOVEDMOVED slot ip:port (cluster redirect)
- ASKASK slot ip:port (cluster redirect)
- EXECABORTEXECABORT Transaction discarded because of previous errors
- NOPERMNOPERM this user has no permissions to run the command or access one of the keys
- ERR value is not an integer or out of rangeERR value is not an integer or out of range
- ERR value is not a valid floatERR value is not a valid float