call in a pipeline context returns nil always because the pipeline is gathering up all the results. When calling HGETALL, the protocol-redis gem wants to immediately turn the result of that call into a hash by calling each_slice(2) which explodes. Minimal repro:
REDIS.pipeline do |context|
context.hgetall("foobar") # 💥
end
REDIS.hgetall("foobar") # {}