go-redis/redis · error

redis: got %d elements in the array, wanted %d

Error message

redis: got %d elements in the array, wanted %d

What it means

Error "redis: got %d elements in the array, wanted %d" thrown in go-redis/redis.

Source

Thrown at internal/proto/reader.go:716

	return s == "OK" || s == "1" || s == "true", nil
}

func (r *Reader) ReadSlice() ([]interface{}, error) {
	line, err := r.ReadLine()
	if err != nil {
		return nil, err
	}
	return r.readSlice(line)
}

// ReadFixedArrayLen read fixed array length.
func (r *Reader) ReadFixedArrayLen(fixedLen int) error {
	n, err := r.ReadArrayLen()
	if err != nil {
		return err
	}
	if n != fixedLen {
		return fmt.Errorf("redis: got %d elements in the array, wanted %d", n, fixedLen)
	}
	return nil
}

// ReadArrayLen Read and return the length of the array.
func (r *Reader) ReadArrayLen() (int, error) {
	line, err := r.ReadLine()
	if err != nil {
		return 0, err
	}
	switch line[0] {
	case RespArray, RespSet, RespPush:
		return replyLen(line)
	default:
		return 0, fmt.Errorf("redis: can't parse array/set/push reply: %.100q", line)
	}
}

View on GitHub (pinned to 36d97525cd)

Solutions

  1. Ensure the reply element count matches the expected count; reconnect if desynced
  2. Use the correct parsing function for this reply shape

When it happens

Trigger: Thrown at internal/proto/reader.go:716 when the library encounters an invalid state.

Common situations: Compare announced array length against expectation before consuming elements.


AI-assisted analysis of go-redis/redis@36d97525cd (2026-08-06). Data as JSON: /data/errors/613d784075bbbc7e.json. Report an issue: GitHub.