{"record":{"id":"0eada7e4fa8ce066","repo":"weaviate/weaviate","slug":"nearimu-targetvectors-cannot-provide-more-than-1-t","errorCode":null,"errorMessage":"nearIMU.targetVectors cannot provide more than 1 target vector value","messagePattern":"nearIMU\\.targetVectors cannot provide more than 1 target vector value","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"usecases/modulecomponents/arguments/nearImu/param.go","lineNumber":58,"sourceCode":"}\n\nfunc validateNearIMUFn(param interface{}) error {\n\tnearIMU, ok := param.(*NearIMUParams)\n\tif !ok {\n\t\treturn errors.New(\"'nearIMU' invalid parameter\")\n\t}\n\n\tif len(nearIMU.IMU) == 0 {\n\t\treturn errors.New(\"'nearIMU.imu' needs to be defined\")\n\t}\n\n\tif nearIMU.Certainty != 0 && nearIMU.WithDistance {\n\t\treturn errors.New(\n\t\t\t\"nearIMU cannot provide both distance and certainty\")\n\t}\n\n\tif len(nearIMU.TargetVectors) > 1 {\n\t\treturn errors.New(\n\t\t\t\"nearIMU.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/nearImu/param.go#L40-L64","documentation":"nearIMU's targetVectors array must hold at most one vector name; more than one makes the search target ambiguous. validateNearIMUFn enforces len(nearIMU.TargetVectors) > 1 as an error. Single-target is required because each near* clause resolves one similarity computation.","triggerScenarios":"GraphQL nearIMU clause with targetVectors containing 2+ names, e.g. [\"imu\",\"motion\"].","commonSituations":"Assuming near* targetVectors behaves like Explore/nearText multi-target searches; code generators emitting every configured vector; users copying nearText multi-vector examples.","solutions":["Reduce targetVectors to a single name in the nearIMU clause","Run one nearIMU query per target vector if multiple searches are needed","Omit targetVectors to fall back to the default vector"],"exampleFix":"// before\nnearIMU: { imu: \"...\", targetVectors: [\"imu\",\"motion\"] }\n// after\nnearIMU: { imu: \"...\", targetVectors: [\"imu\"] }","handlingStrategy":"validation","validationCode":"if (Array.isArray(args.nearIMU?.targetVectors) && args.nearIMU.targetVectors.length > 1) {\n  throw new Error(\"nearIMU.targetVectors allows at most 1 entry\");\n}","typeGuard":"function hasSingleTarget(clause) {\n  return !Array.isArray(clause.targetVectors) || clause.targetVectors.length <= 1;\n}","tryCatchPattern":null,"preventionTips":["Keep targetVectors to one entry for every near* clause","Generate one query per named vector for multi-vector needs","Default to omitting targetVectors unless a specific named vector is required"],"tags":["graphql","validation","nearimu","target-vectors","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"}