Skip to content

[BUG] Valkey 9.1 has changed Lua error messages #3663

Description

@murphyjacob4

Describe the bug

In moving Lua to a module, we broke some error messages:

Trigger Command / Action Redis 7.2 Output Valkey unstable Output
Missing script identifier (Any EVAL script failure) Includes script SHA1 hash in error. Omits the script SHA1 hash. (Breaks tools tracking failed scripts by SHA1).
redis.pcall() (Empty call) "ERR Please specify at least one argument for this redis lib call" "Please specify at least one argument for this call"
redis.pcall('ECHO', true) "ERR Lua redis lib command arguments must be strings or integers" "ERR Command arguments must be strings or integers"
redis.setresp(4) "ERR RESP version must be 2 or 3." "RESP version must be 2 or 3."
redis.call('nonexistent_command') "ERR Unknown Redis command called from script" "ERR Unknown command called from script"
redis.call('get') "ERR Wrong number of args calling Redis command from script" "ERR Wrong number of args calling command from script"
redis.call('subscribe', 'channel') "ERR This Redis command is not allowed from script" "ERR This Valkey command is not allowed from script"
pcall(redis.log, 1) "ERR redis.log() requires two arguments or more." "server.log() requires two arguments or more."
pcall(redis.log, 10, 'test') "ERR Invalid debug level." "Invalid log level."
pcall(redis.acl_check_cmd, 'nonexistent') "ERR Invalid command passed to redis.acl_check_cmd()" "ERR Invalid command passed to server.acl_check_cmd()"
pcall(redis.set_repl) "ERR redis.set_repl() requires one argument." "server.set_repl() requires one argument."
redis.call('get', 'foo') (Cluster) "ERR Script attempted to access a non local key in a cluster node" "ERR Attempted to access a non local key in a cluster node"

Some of these are probably intentional (branding) changes. But some other ones seem changed for no reason, and some the error code is missing (no -ERR) which would break a lot of error handling logic.

To reproduce

Use EVAL to run the above on Valkey unstable.

Expected behavior

Error messages would not change, except where needed for branding.

Additional information

Any additional information that is relevant to the problem.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions