redis/redis-rb · error · TypeError
#{name} must be an Integer in integer mode, got #{value.clas
Error message
#{name} must be an Integer in integer mode, got #{value.class} What it means
Error "#{name} must be an Integer in integer mode, got #{value.class}" thrown in redis/redis-rb.
Source
Thrown at lib/redis/commands/strings.rb:405
end
# Get the length of the value stored in a key.
#
# @param [String] key
# @return [Integer] the length of the value stored in the key, or 0
# if the key does not exist
def strlen(key)
send_command([:strlen, key])
end
private
# INCREX bounds decide whether the increment is applied at all, so a
# Float bound in integer mode must raise rather than silently truncate
# (`Integer(2.9)` => 2) — mirroring how `by:` selects the mode strictly.
def increx_bound(name, value, float_mode)
return Float(value) if float_mode
raise TypeError, "#{name} must be an Integer in integer mode, got #{value.class}" unless value.is_a?(Integer)
value
end
end
end
end
View on GitHub (pinned to 2ba9010b91)
Solutions
- Pass an Integer value for the named field when the command is in integer mode.
- Use float mode (by: / BYFLOAT semantics) if the value must be a Float, or coerce with to_i.
When it happens
Trigger: Thrown at lib/redis/commands/strings.rb:405 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of redis/redis-rb@2ba9010b91 (2026-08-23).
Data as JSON: /api/errors/ae7c4fb46255e923.
Report an issue: GitHub.