{"id":"260b9752ba789447","repo":"go-redis/redis","slug":"not-implemented","errorCode":null,"errorMessage":"not implemented","messagePattern":"not implemented","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"commands.go","lineNumber":475,"sourceCode":"// DoRaw executes a command and returns the raw RESP protocol bytes without parsing.\nfunc (c cmdable) DoRaw(ctx context.Context, args ...interface{}) *RawCmd {\n\tcmd := NewRawCmd(ctx, args...)\n\t_ = c(ctx, cmd)\n\treturn cmd\n}\n\n// DoRawWriteTo executes a command and streams raw RESP bytes directly to w without intermediate allocations.\nfunc (c cmdable) DoRawWriteTo(ctx context.Context, w io.Writer, args ...interface{}) *RawWriteToCmd {\n\tcmd := NewRawWriteToCmd(ctx, w, args...)\n\t_ = c(ctx, cmd)\n\treturn cmd\n}\n\n// Quit closes the connection.\n//\n// Deprecated: Just close the connection instead as of Redis 7.2.0.\nfunc (c cmdable) Quit(_ context.Context) *StatusCmd {\n\tpanic(\"not implemented\")\n}\n\n//------------------------------------------------------------------------------\n\nfunc (c cmdable) BgRewriteAOF(ctx context.Context) *StatusCmd {\n\tcmd := NewStatusCmd(ctx, \"bgrewriteaof\")\n\t_ = c(ctx, cmd)\n\treturn cmd\n}\n\nfunc (c cmdable) BgSave(ctx context.Context) *StatusCmd {\n\tcmd := NewStatusCmd(ctx, \"bgsave\")\n\t_ = c(ctx, cmd)\n\treturn cmd\n}\n\nfunc (c cmdable) ClientKill(ctx context.Context, ipPort string) *StatusCmd {\n\tcmd := NewStatusCmd(ctx, \"client\", \"kill\", ipPort)","sourceCodeStart":457,"sourceCodeEnd":493,"githubUrl":"https://github.com/go-redis/redis/blob/36d97525cd8076aed67cddf54778e9ea84550929/commands.go#L457-L493","documentation":"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.","triggerScenarios":"Calling client.Quit(ctx) (or invoking it through the Cmdable interface) on any client type.","commonSituations":"Porting code from another Redis client that issues QUIT, or auto-generating command calls from a Redis command list without checking deprecation.","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()."],"exampleFix":"// before\nclient.Quit(ctx)\n\n// after\nclient.Close()","handlingStrategy":"validation","validationCode":"// Quit is intentionally unsupported. Validate at the call site by not calling it.\n// Replace any client.Quit(ctx) with client.Close().","typeGuard":null,"tryCatchPattern":null,"preventionTips":["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."],"tags":["command","deprecated","panic","quit","not-implemented"],"analyzedSha":"36d97525cd8076aed67cddf54778e9ea84550929","analyzedAt":"2026-08-06T01:08:27.376Z","schemaVersion":2}