go-redis/redis · error
redis: no initConnFunc set for conn[%d]
Error message
redis: no initConnFunc set for conn[%d]
What it means
Error "redis: no initConnFunc set for conn[%d]" thrown in go-redis/redis.
Source
Thrown at internal/pool/conn.go:693
}
// SetOnCscReinit sets the client-side-caching pre-reinitialization hook,
// overwriting any previous one.
func (cn *Conn) SetOnCscReinit(fn func()) {
cn.onCscReinit = fn
}
// SetInitConnFunc sets the connection initialization function to be called on reconnections.
func (cn *Conn) SetInitConnFunc(fn func(context.Context, *Conn) error) {
cn.initConnFunc = fn
}
// ExecuteInitConn runs the stored connection initialization function if available.
func (cn *Conn) ExecuteInitConn(ctx context.Context) error {
if cn.initConnFunc != nil {
return cn.initConnFunc(ctx, cn)
}
return fmt.Errorf("redis: no initConnFunc set for conn[%d]", cn.GetID())
}
func (cn *Conn) SetNetConn(netConn net.Conn) {
// Store the new connection atomically first (lock-free)
cn.setNetConn(netConn)
// Protect reader reset operations to avoid data races
// Use write lock since we're modifying the reader state
cn.readerMu.Lock()
cn.rd.Reset(netConn)
cn.readerMu.Unlock()
cn.bw.Reset(netConn)
// A new socket is a new server session with no HIMPORT fieldsets and
// nothing left to discard.
cn.ClearPreparedFieldsets(0)
}
View on GitHub (pinned to 36d97525cd)
Solutions
- Construct connections through the pool's NewConnPool so initConnFunc is wired
- If constructing pool.Conn manually, set the init function before first use
When it happens
Trigger: Thrown at internal/pool/conn.go:693 when the library encounters an invalid state.
Common situations: Never construct pool connections outside the pool factory.
AI-assisted analysis of go-redis/redis@36d97525cd (2026-08-06).
Data as JSON: /data/errors/318994faa1131432.json.
Report an issue: GitHub.