redis/go-redis · error
redis: NewClusterClient nil options
Error message
redis: NewClusterClient nil options
What it means
Error "redis: NewClusterClient nil options" thrown in redis/go-redis.
Source
Thrown at osscluster.go:1386
// himport is the cluster-wide HIMPORT fieldset registry, shared with
// every node client (masters and replicas alike — roles change with the
// topology) so any connection serving an HIMPORT SET can lazily replay
// the PREPARE (see himport.go, himport_cluster.go).
himport *himportRegistry
autopipelinerMu *sync.Mutex // guards the autopipeliner fields against concurrent first-call creation
autopipeliner *AutoPipeliner // blocking face (ClusterClient.AutoPipeline)
asyncAutopipeliner *AutoPipeliner // deferred face (ClusterClient.AsyncAutoPipeline)
autopipelinerClosed bool // set by Close: refuse to resurrect a pipeliner on a closed client
}
// NewClusterClient returns a Redis Cluster client as described in
// https://redis.io/docs/latest/operate/oss_and_stack/reference/cluster-spec.
// Passing nil ClusterOptions will cause a panic.
func NewClusterClient(opt *ClusterOptions) *ClusterClient {
if opt == nil {
panic("redis: NewClusterClient nil options")
}
opt.init()
c := &ClusterClient{
opt: opt,
nodes: newClusterNodes(opt),
himport: newHImportRegistry(),
autopipelinerMu: &sync.Mutex{},
}
// Every node client shares the cluster-wide fieldset registry, replicas
// included: a promoted replica's connections carry no prepared flags, so
// the first HIMPORT SET routed to it replays the PREPARE lazily.
c.nodes.OnNewNode(func(nodeClient *Client) {
nodeClient.himport = c.himport
})
c.cmdsInfoCache = newCmdsInfoCache(c.cmdsInfo)View on GitHub (pinned to c5cad058c7)
When it happens
Trigger: Thrown at osscluster.go:1386 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of redis/go-redis@c5cad058c7 (2026-09-01).
Data as JSON: /api/errors/4806e56ce58e3341.
Report an issue: GitHub.