go-redis/redis · error

redis: unable to parse addr param: %s

Error message

redis: unable to parse addr param: %s

What it means

Error "redis: unable to parse addr param: %s" thrown in go-redis/redis.

Source

Thrown at sentinel.go:512

	o.UnstableResp3 = q.bool("unstable_resp3")

	if q.err != nil {
		return nil, q.err
	}

	if tmp := q.string("db"); tmp != "" {
		db, err := strconv.Atoi(tmp)
		if err != nil {
			return nil, fmt.Errorf("redis: invalid database number: %w", err)
		}
		o.DB = db
	}

	addrs := q.strings("addr")
	for _, addr := range addrs {
		h, p, err := net.SplitHostPort(addr)
		if err != nil || h == "" || p == "" {
			return nil, fmt.Errorf("redis: unable to parse addr param: %s", addr)
		}

		o.SentinelAddrs = append(o.SentinelAddrs, net.JoinHostPort(h, p))
	}

	if o.TLSConfig != nil && q.has("skip_verify") {
		o.TLSConfig.InsecureSkipVerify = q.bool("skip_verify")
	}

	// any parameters left?
	if r := q.remaining(); len(r) > 0 {
		return nil, fmt.Errorf("redis: unexpected option: %s", strings.Join(r, ", "))
	}

	return o, nil
}

// NewFailoverClient returns a Redis client that uses Redis Sentinel

View on GitHub (pinned to 36d97525cd)

Solutions

  1. Fix the addr query parameter format (host:port)
  2. URL-encode or remove the malformed addr parameter

When it happens

Trigger: Thrown at sentinel.go:512 when the library encounters an invalid state.

Common situations: Validate addr parameters at configuration load.


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