{"id":"4f3bff1616cfd041","repo":"go-redis/redis","slug":"redis-can-t-unmarshal-t-consider-implementing-b","errorCode":null,"errorMessage":"redis: can't unmarshal %T (consider implementing BinaryUnmarshaler)","messagePattern":"redis: can't unmarshal %T \\(consider implementing BinaryUnmarshaler\\)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/proto/scan.go","lineNumber":124,"sourceCode":"\t\treturn nil\n\tcase *time.Time:\n\t\tvar err error\n\t\t*v, err = time.Parse(time.RFC3339Nano, util.BytesToString(b))\n\t\treturn err\n\tcase *time.Duration:\n\t\tn, err := util.ParseInt(b, 10, 64)\n\t\tif err != nil {\n\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)","sourceCodeStart":106,"sourceCodeEnd":142,"githubUrl":"https://github.com/go-redis/redis/blob/36d97525cd8076aed67cddf54778e9ea84550929/internal/proto/scan.go#L106-L142","documentation":"Error \"redis: can't unmarshal %T (consider implementing BinaryUnmarshaler)\" thrown in go-redis/redis.","triggerScenarios":"Thrown at internal/proto/scan.go:124 when the library encounters an invalid state.","commonSituations":"Use string/[]byte destinations and decode explicitly for custom types.","solutions":["Implement encoding.BinaryUnmarshaler on the destination type","Scan into a supported primitive type instead"],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"analyzedSha":"36d97525cd8076aed67cddf54778e9ea84550929","analyzedAt":"2026-08-06T01:08:27.376Z","schemaVersion":2}