{"record":{"id":"c804d5b9b4aa6ccb","repo":"redis/go-redis","slug":"ft-create-schema-vectorargs-must-have-exactly-one","errorCode":null,"errorMessage":"FT.CREATE: SCHEMA VectorArgs must have exactly one of FlatOptions, HNSWOptions, or VamanaOptions","messagePattern":"FT\\.CREATE: SCHEMA VectorArgs must have exactly one of FlatOptions, HNSWOptions, or VamanaOptions","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"search_commands.go","lineNumber":1482,"sourceCode":"\t\t\tif schema.FieldType != SearchFieldTypeVector {\n\t\t\t\tcmd := NewStatusCmd(ctx, args...)\n\t\t\t\tcmd.SetErr(fmt.Errorf(\"FT.CREATE: SCHEMA FieldType VECTOR is required for VectorArgs\"))\n\t\t\t\treturn cmd\n\t\t\t}\n\t\t\t// Check mutual exclusivity of vector options\n\t\t\toptionCount := 0\n\t\t\tif schema.VectorArgs.FlatOptions != nil {\n\t\t\t\toptionCount++\n\t\t\t}\n\t\t\tif schema.VectorArgs.HNSWOptions != nil {\n\t\t\t\toptionCount++\n\t\t\t}\n\t\t\tif schema.VectorArgs.VamanaOptions != nil {\n\t\t\t\toptionCount++\n\t\t\t}\n\t\t\tif optionCount != 1 {\n\t\t\t\tcmd := NewStatusCmd(ctx, args...)\n\t\t\t\tcmd.SetErr(fmt.Errorf(\"FT.CREATE: SCHEMA VectorArgs must have exactly one of FlatOptions, HNSWOptions, or VamanaOptions\"))\n\t\t\t\treturn cmd\n\t\t\t}\n\t\t\tif schema.VectorArgs.FlatOptions != nil {\n\t\t\t\targs = append(args, \"FLAT\")\n\t\t\t\tif schema.VectorArgs.FlatOptions.Type == \"\" || schema.VectorArgs.FlatOptions.Dim == 0 || schema.VectorArgs.FlatOptions.DistanceMetric == \"\" {\n\t\t\t\t\tcmd := NewStatusCmd(ctx, args...)\n\t\t\t\t\tcmd.SetErr(fmt.Errorf(\"FT.CREATE: Type, Dim and DistanceMetric are required for VECTOR FLAT\"))\n\t\t\t\t\treturn cmd\n\t\t\t\t}\n\t\t\t\tflatArgs := []interface{}{\n\t\t\t\t\t\"TYPE\", schema.VectorArgs.FlatOptions.Type,\n\t\t\t\t\t\"DIM\", schema.VectorArgs.FlatOptions.Dim,\n\t\t\t\t\t\"DISTANCE_METRIC\", schema.VectorArgs.FlatOptions.DistanceMetric,\n\t\t\t\t}\n\t\t\t\tif schema.VectorArgs.FlatOptions.InitialCapacity > 0 {\n\t\t\t\t\tflatArgs = append(flatArgs, \"INITIAL_CAP\", schema.VectorArgs.FlatOptions.InitialCapacity)\n\t\t\t\t}\n\t\t\t\tif schema.VectorArgs.FlatOptions.BlockSize > 0 {","sourceCodeStart":1464,"sourceCodeEnd":1500,"githubUrl":"https://github.com/redis/go-redis/blob/c5cad058c72f58370553b48566302303cf8a2e89/search_commands.go#L1464-L1500","documentation":"Error \"FT.CREATE: SCHEMA VectorArgs must have exactly one of FlatOptions, HNSWOptions, or VamanaOptions\" thrown in redis/go-redis.","triggerScenarios":"Thrown at search_commands.go:1482 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c5cad058c72f58370553b48566302303cf8a2e89","analyzedAt":"2026-09-01T06:50:53.388Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}