{"id":"e3dae9a4bae61c8f","repo":"go-redis/redis","slug":"cannot-convert-t-to-int64","errorCode":null,"errorMessage":"cannot convert %T to int64","messagePattern":"cannot convert %T to int64","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/routing/aggregator.go","lineNumber":649,"sourceCode":"\nfunc toInt64(val interface{}) (int64, error) {\n\tif val == nil {\n\t\treturn 0, nil\n\t}\n\tswitch v := val.(type) {\n\tcase int64:\n\t\treturn v, nil\n\tcase int:\n\t\treturn int64(v), nil\n\tcase int32:\n\t\treturn int64(v), nil\n\tcase float64:\n\t\tif v != math.Trunc(v) {\n\t\t\treturn 0, fmt.Errorf(\"cannot convert float %f to int64\", v)\n\t\t}\n\t\treturn int64(v), nil\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"cannot convert %T to int64\", val)\n\t}\n}\n\nfunc toFloat64(val interface{}) (float64, error) {\n\tif val == nil {\n\t\treturn 0, nil\n\t}\n\n\tswitch v := val.(type) {\n\tcase float64:\n\t\treturn v, nil\n\tcase int:\n\t\treturn float64(v), nil\n\tcase int32:\n\t\treturn float64(v), nil\n\tcase int64:\n\t\treturn float64(v), nil\n\tcase float32:","sourceCodeStart":631,"sourceCodeEnd":667,"githubUrl":"https://github.com/go-redis/redis/blob/36d97525cd8076aed67cddf54778e9ea84550929/internal/routing/aggregator.go#L631-L667","documentation":"Error \"cannot convert %T to int64\" thrown in go-redis/redis.","triggerScenarios":"Thrown at internal/routing/aggregator.go:649 when the library encounters an invalid state.","commonSituations":"Type-switch shard results before numeric aggregation.","solutions":["Ensure aggregated values are numeric before requesting int64 conversion","Handle non-numeric shard results separately"],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"analyzedSha":"36d97525cd8076aed67cddf54778e9ea84550929","analyzedAt":"2026-08-06T01:08:27.376Z","schemaVersion":2}