go-redis/redis · error
not implemented
Error message
not implemented
What it means
The Quit method panics with 'not implemented'. Quit is deprecated as of Redis 7.2.0; the comment says to just close the connection. The method signature is retained on the Cmdable interface but its body deliberately panics because QUIT must close the calling connection, which the pooled client model does not support.
Source
Thrown at commands.go:475
// DoRaw executes a command and returns the raw RESP protocol bytes without parsing.
func (c cmdable) DoRaw(ctx context.Context, args ...interface{}) *RawCmd {
cmd := NewRawCmd(ctx, args...)
_ = c(ctx, cmd)
return cmd
}
// DoRawWriteTo executes a command and streams raw RESP bytes directly to w without intermediate allocations.
func (c cmdable) DoRawWriteTo(ctx context.Context, w io.Writer, args ...interface{}) *RawWriteToCmd {
cmd := NewRawWriteToCmd(ctx, w, args...)
_ = c(ctx, cmd)
return cmd
}
// Quit closes the connection.
//
// Deprecated: Just close the connection instead as of Redis 7.2.0.
func (c cmdable) Quit(_ context.Context) *StatusCmd {
panic("not implemented")
}
//------------------------------------------------------------------------------
func (c cmdable) BgRewriteAOF(ctx context.Context) *StatusCmd {
cmd := NewStatusCmd(ctx, "bgrewriteaof")
_ = c(ctx, cmd)
return cmd
}
func (c cmdable) BgSave(ctx context.Context) *StatusCmd {
cmd := NewStatusCmd(ctx, "bgsave")
_ = c(ctx, cmd)
return cmd
}
func (c cmdable) ClientKill(ctx context.Context, ipPort string) *StatusCmd {
cmd := NewStatusCmd(ctx, "client", "kill", ipPort)View on GitHub (pinned to 36d97525cd)
Solutions
- Do not call Quit; close the client with client.Close() instead.
- Remove any Quit references and rely on connection-pool teardown.
- If you need a per-connection close, use a raw Conn via client.Conn().
Example fix
// before client.Quit(ctx) // after client.Close()
Defensive patterns
Strategy: validation
Validate before calling
// Quit is intentionally unsupported. Validate at the call site by not calling it. // Replace any client.Quit(ctx) with client.Close().
Prevention
- Search the codebase for '.Quit(' and remove/replace every occurrence.
- Do not generate command calls from the Redis command catalogue without filtering deprecated/unsupported stubs.
- Use client.Close() for teardown.
When it happens
Trigger: Calling client.Quit(ctx) (or invoking it through the Cmdable interface) on any client type.
Common situations: Porting code from another Redis client that issues QUIT, or auto-generating command calls from a Redis command list without checking deprecation.
Related errors
- FTExplainCli is not implemented
- not implemented
- GeoRadius does not support Store or StoreDist
- GeoRadiusByMember does not support Store or StoreDist
- redis: unexpected type=%T for String
AI-assisted analysis of go-redis/redis@36d97525cd (2026-08-06).
Data as JSON: /data/errors/260b9752ba789447.json.
Report an issue: GitHub.