{"id":"fc3f9357c3b435e1","repo":"go-redis/redis","slug":"redis-scan-nil","errorCode":null,"errorMessage":"redis: Scan(nil)","messagePattern":"redis: Scan\\(nil\\)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/proto/scan.go","lineNumber":19,"sourceCode":"package proto\n\nimport (\n\t\"encoding\"\n\t\"fmt\"\n\t\"net\"\n\t\"reflect\"\n\t\"time\"\n\n\t\"github.com/redis/go-redis/v9/internal/util\"\n)\n\n// Scan parses bytes `b` to `v` with appropriate type.\n//\n//nolint:gocyclo\nfunc Scan(b []byte, v interface{}) error {\n\tswitch v := v.(type) {\n\tcase nil:\n\t\treturn fmt.Errorf(\"redis: Scan(nil)\")\n\tcase *string:\n\t\t*v = util.BytesToString(b)\n\t\treturn nil\n\tcase *[]byte:\n\t\t*v = b\n\t\treturn nil\n\tcase *int:\n\t\tvar err error\n\t\t*v, err = util.Atoi(b)\n\t\treturn err\n\tcase *int8:\n\t\tn, err := util.ParseInt(b, 10, 8)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t*v = int8(n)\n\t\treturn nil\n\tcase *int16:","sourceCodeStart":1,"sourceCodeEnd":37,"githubUrl":"https://github.com/go-redis/redis/blob/36d97525cd8076aed67cddf54778e9ea84550929/internal/proto/scan.go#L1-L37","documentation":"Error \"redis: Scan(nil)\" thrown in go-redis/redis.","triggerScenarios":"Thrown at internal/proto/scan.go:19 when the library encounters an invalid state.","commonSituations":"Nil-check scan destinations in shared helpers.","solutions":["Pass a non-nil destination to Scan","Initialize the destination before calling"],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"analyzedSha":"36d97525cd8076aed67cddf54778e9ea84550929","analyzedAt":"2026-08-06T01:08:27.376Z","schemaVersion":2}