{"record":{"id":"443fe54ccc09cadf","repo":"weaviate/weaviate","slug":"nearaudio-targetvectors-cannot-provide-more-than-1","errorCode":null,"errorMessage":"nearAudio.targetVectors cannot provide more than 1 target vector value","messagePattern":"nearAudio\\.targetVectors cannot provide more than 1 target vector value","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"usecases/modulecomponents/arguments/nearAudio/param.go","lineNumber":58,"sourceCode":"}\n\nfunc validateNearAudioFn(param interface{}) error {\n\tnearAudio, ok := param.(*NearAudioParams)\n\tif !ok {\n\t\treturn errors.New(\"'nearAudio' invalid parameter\")\n\t}\n\n\tif len(nearAudio.Audio) == 0 {\n\t\treturn errors.New(\"'nearAudio.audio' needs to be defined\")\n\t}\n\n\tif nearAudio.Certainty != 0 && nearAudio.WithDistance {\n\t\treturn errors.New(\n\t\t\t\"nearAudio cannot provide both distance and certainty\")\n\t}\n\n\tif len(nearAudio.TargetVectors) > 1 {\n\t\treturn errors.New(\n\t\t\t\"nearAudio.targetVectors cannot provide more than 1 target vector value\")\n\t}\n\n\treturn nil\n}\n","sourceCodeStart":40,"sourceCodeEnd":64,"githubUrl":"https://github.com/weaviate/weaviate/blob/75aa4b6d11f8818305aafd4440b4e32794f7ca04/usecases/modulecomponents/arguments/nearAudio/param.go#L40-L64","documentation":"Weaviate's nearAudio GraphQL/media argument validator rejects the request when the targetVectors array contains more than one entry. nearAudio performs similarity search against a single audio vector, so multiple target vectors are meaningless; the validator (validateNearAudioFn in usecases/modulecomponents/arguments/nearAudio/param.go) fails fast before the search is executed. This is a client request-shape error, not a server fault.","triggerScenarios":"Sending a GraphQL nearAudio query whose targetVectors argument is an array with 2+ names, e.g. targetVectors: [\"vecA\",\"vecB\"]. Called via validateNearAudioFn during argument extraction.","commonSituations":"Copy-pasting a multi-vector nearText pattern into a nearAudio query; misunderstanding that targetVectors selects one named vector per search; scripting query generation that always emits a targetVectors list.","solutions":["Pass at most one vector name in nearAudio.targetVectors","If you need to search multiple named vectors, issue one nearAudio query per vector instead of one query with several targets","Omit targetVectors entirely to use the collection's default vector"],"exampleFix":"// before\nnearAudio: { audio: \"base64...\", targetVectors: [\"default\", \"custom\"] }\n// after\nnearAudio: { audio: \"base64...\", targetVectors: [\"default\"] }","handlingStrategy":"validation","validationCode":"if (Array.isArray(args.nearAudio?.targetVectors) && args.nearAudio.targetVectors.length > 1) {\n  throw new Error(\"nearAudio.targetVectors allows at most 1 entry\");\n}","typeGuard":"function hasAtMostOneTargetVector(clause) {\n  return !Array.isArray(clause.targetVectors) || clause.targetVectors.length <= 1;\n}","tryCatchPattern":null,"preventionTips":["Never emit more than one entry in near* targetVectors arrays","Build queries through a typed helper that enforces single-target semantics","Omit targetVectors when using the default vector"],"tags":["graphql","validation","nearaudio","weaviate"],"backgroundTag":"invalid-graphql-argument","analyzedSha":"75aa4b6d11f8818305aafd4440b4e32794f7ca04","analyzedAt":"2026-09-04T14:58:20.392Z","contentChangedAt":"2026-09-04T14:58:20.392Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}