Fix “WRONGTYPE Operation against a key holding the wrong kind of value” when using ZUNION or ZUNIONSTORE in Redis

If you get an error that reads “WRONGTYPE Operation against a key holding the wrong kind of value” when using the ZUNION or ZUNIONSTORE commands in Redis, it’s because you’re passing a key with the wrong data type.

To fix this issue, make sure the keys you pass to these commands contain either sets or sorted sets. Although these commands are for sorted sets, they also work with non-sorted sets.

Example of Error

Here’s an example of code that causes the error:

ZUNION 2 cats users

Result:

(error) WRONGTYPE Operation against a key holding the wrong kind of value

In my case the users key holds a list, which is why I got the error. The cats key (correctly) contains a sorted set, but the users key containing the wrong data type was enough to cause the error.

We can use the TYPE command to check a key’s type:

TYPE users

Result:

list

As suspected, the key holds a list, which is the wrong data type for ZUNION (and for ZUNIONSTORE).

Solution

The solution is to make sure that each key we pass to the ZUNION and ZUNIONSTORE commands holds either a set or a sorted set.

Here’s an example that uses a set and a sorted set:

ZUNION 2 cats birds

Result:

1) "Fluffy"
2) "Flutter"
3) "Tweet"
4) "meow"
5) "fluffy"
6) "scratch"

This time it worked without error.

Let’s check both keys’ data types:

TYPE cats

Result:

zset

So, cats is a sorted set.

TYPE birds

Result:

set

And birds is actually a set (but not a sorted set), but it didn’t cause any errors.