Typed error for NOSCRIPT replies from Redis#3738
Merged
Merged
Conversation
LINKIWI
commented
Mar 16, 2026
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.
This PR proposes exposing a typed error
ErrNoScriptthat indicates aNOSCRIPTreply from Redis during script execution.This allows library consumers who directly use the
EvalShaAPI (as opposed to the*redis.Scriptabstraction) to explicitly detect and handle this case, without needing to roll their own error introspection logic:This change also makes the internal implementation of
*redis.Scriptless fragile, in that theEvalShaandEvalShaROcallsites can check for a typed error rather than performing error string prefix matching.I have added two new unit tests to exercise the behavior.
Note
Medium Risk
Changes the error value returned from
EvalSha/EvalShaROwhen Redis repliesNOSCRIPT, which could affect consumers that compare error strings or types. Scope is limited to scripting command error handling plus new tests.Overview
Adds a new exported typed error
redis.ErrNoScriptto represent RedisNOSCRIPTreplies for missing script digests.Updates the scripting command path so
EvalSha/EvalShaROnormalizeNOSCRIPTresponses toErrNoScript, and updates(*Script).Run/RunROto useerrors.Isagainst this typed error instead of string-prefix matching. Adds unit tests assertingNOSCRIPTis propagated asredis.ErrNoScriptfor unknown digests.Written by Cursor Bugbot for commit 27fd86f. This will update automatically on new commits. Configure here.