{"id":"91cc64cc57a4d863","repo":"go-redis/redis","slug":"redis-scanslice-nil","errorCode":null,"errorMessage":"redis: ScanSlice(nil)","messagePattern":"redis: ScanSlice\\(nil\\)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/proto/scan.go","lineNumber":132,"sourceCode":"\t\t\treturn err\n\t\t}\n\t\t*v = time.Duration(n)\n\t\treturn nil\n\tcase encoding.BinaryUnmarshaler:\n\t\treturn v.UnmarshalBinary(b)\n\tcase *net.IP:\n\t\t*v = b\n\t\treturn nil\n\tdefault:\n\t\treturn fmt.Errorf(\n\t\t\t\"redis: can't unmarshal %T (consider implementing BinaryUnmarshaler)\", v)\n\t}\n}\n\nfunc ScanSlice(data []string, slice interface{}) error {\n\tv := reflect.ValueOf(slice)\n\tif !v.IsValid() {\n\t\treturn fmt.Errorf(\"redis: ScanSlice(nil)\")\n\t}\n\tif v.Kind() != reflect.Ptr {\n\t\treturn fmt.Errorf(\"redis: ScanSlice(non-pointer %T)\", slice)\n\t}\n\tv = v.Elem()\n\tif v.Kind() != reflect.Slice {\n\t\treturn fmt.Errorf(\"redis: ScanSlice(non-slice %T)\", slice)\n\t}\n\n\tnext := makeSliceNextElemFunc(v)\n\tfor i, s := range data {\n\t\telem := next()\n\t\tif err := Scan([]byte(s), elem.Addr().Interface()); err != nil {\n\t\t\terr = fmt.Errorf(\"redis: ScanSlice index=%d value=%q failed: %w\", i, s, err)\n\t\t\treturn err\n\t\t}\n\t}\n","sourceCodeStart":114,"sourceCodeEnd":150,"githubUrl":"https://github.com/go-redis/redis/blob/36d97525cd8076aed67cddf54778e9ea84550929/internal/proto/scan.go#L114-L150","documentation":"Error \"redis: ScanSlice(nil)\" thrown in go-redis/redis.","triggerScenarios":"Thrown at internal/proto/scan.go:132 when the library encounters an invalid state.","commonSituations":"Guard ScanSlice destinations against nil at the call site.","solutions":["Pass a non-nil slice pointer to ScanSlice","Allocate the destination slice variable before the call"],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"analyzedSha":"36d97525cd8076aed67cddf54778e9ea84550929","analyzedAt":"2026-08-06T01:08:27.376Z","schemaVersion":2}