{"record":{"id":"3c614a69980c7ee6","repo":"weaviate/weaviate","slug":"child-operand-at-position-d","errorCode":null,"errorMessage":"child operand at position %d","messagePattern":"child operand at position (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"entities/filters/filters_validator.go","lineNumber":52,"sourceCode":"\tif filters == nil {\n\t\treturn errors.New(\"empty where\")\n\t}\n\tcw := newClauseWrapper(filters.Root)\n\tif err := validateClause(authorizedGetClass, cw); err != nil {\n\t\treturn err\n\t}\n\tcw.updateClause()\n\treturn nil\n}\n\nfunc validateClause(authorizedGetClass func(string) (*models.Class, error), cw *clauseWrapper) error {\n\t// check if nested\n\tif cw.getOperands() != nil {\n\t\tvar errs []error\n\n\t\tfor i, child := range cw.getOperands() {\n\t\t\tif err := validateClause(authorizedGetClass, child); err != nil {\n\t\t\t\terrs = append(errs, errors.Wrapf(err, \"child operand at position %d\", i))\n\t\t\t}\n\t\t}\n\n\t\tif len(errs) > 0 {\n\t\t\treturn mergeErrs(errs)\n\t\t}\n\t\treturn nil\n\t}\n\n\t// validate current\n\n\tclassName := cw.getClassName()\n\tpropName := cw.getPropertyName()\n\n\tif IsInternalProperty(propName) {\n\t\treturn validateInternalPropertyClause(propName, cw)\n\t}\n","sourceCodeStart":34,"sourceCodeEnd":70,"githubUrl":"https://github.com/weaviate/weaviate/blob/75aa4b6d11f8818305aafd4440b4e32794f7ca04/entities/filters/filters_validator.go#L34-L70","documentation":"A nested operand inside an And/Or/Not filter failed its own validation, and the error is re-wrapped with the operand's position so users can locate which branch of the where-clause is bad. The root cause is in the inner error (e.g. unknown property, bad operator); this wrapper only adds positional context while other siblings continue to be validated and joined.","triggerScenarios":"Thrown at entities/filters/filters_validator.go:52 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Read the inner error: it names the actual problem in that operand","Fix or remove the operand at the reported position in the where filter","Flatten deeply nested filters client-side to make positions easier to map"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"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"}