{"id":"2d5d78d393512e26","repo":"go-redis/redis","slug":"ft-hybrid-vector-blob-is-required","errorCode":null,"errorMessage":"FT.HYBRID: vector blob is required","messagePattern":"FT\\.HYBRID: vector blob is required","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"search_commands.go","lineNumber":3786,"sourceCode":"\t\treturn hybridVectorBytes(vector.Val)\n\tcase *VectorInt8:\n\t\treturn hybridVectorBytes(vector.Val)\n\tcase *VectorUint8:\n\t\treturn hybridVectorBytes(vector.Val)\n\tcase *VectorValues, *VectorRef:\n\t\treturn nil, fmt.Errorf(\"FT.HYBRID: unsupported vector type %T\", v)\n\tdefault:\n\t\tvalues := v.Value()\n\t\tif len(values) < 2 {\n\t\t\treturn nil, fmt.Errorf(\"FT.HYBRID: vector Value must contain a blob at index 1\")\n\t\t}\n\t\treturn values[1], nil\n\t}\n}\n\nfunc hybridVectorBytes(blob []byte) ([]byte, error) {\n\tif len(blob) == 0 {\n\t\treturn nil, fmt.Errorf(\"FT.HYBRID: vector blob is required\")\n\t}\n\treturn blob, nil\n}\n\n// generateVectorParamName returns a parameter name that is not already present\n// in params. It is used to pass vector data via the PARAMS mechanism when the\n// caller does not provide a VectorParamName, since inline vector blobs are no\n// longer supported by Redis.\nfunc generateVectorParamName(params map[string]interface{}) string {\n\tfor i := 0; ; i++ {\n\t\tname := fmt.Sprintf(\"__vector_param_%d\", i)\n\t\tif _, ok := params[name]; !ok {\n\t\t\treturn name\n\t\t}\n\t}\n}\n\n// FTHybridWithArgs - Executes a hybrid search with advanced options","sourceCodeStart":3768,"sourceCodeEnd":3804,"githubUrl":"https://github.com/go-redis/redis/blob/36d97525cd8076aed67cddf54778e9ea84550929/search_commands.go#L3768-L3804","documentation":"Error \"FT.HYBRID: vector blob is required\" thrown in go-redis/redis.","triggerScenarios":"Thrown at search_commands.go:3786 when the library encounters an invalid state.","commonSituations":"Assert non-empty vector blobs before sending FT.HYBRID queries.","solutions":["Supply the vector blob bytes for the KNN/vector clause","Serialize the embedding (e.g. float32 little-endian) into the blob"],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"analyzedSha":"36d97525cd8076aed67cddf54778e9ea84550929","analyzedAt":"2026-08-06T01:08:27.376Z","schemaVersion":2}