weaviate/weaviate · error

nested clause at pos %d: %w

Error message

nested clause at pos %d: %w

What it means

extractPropValuePairs wraps a nested-clause build failure with its operand position: buildPropValuePair failed for the i-th operand of a filter group. Note the special case: an ErrOnlyStopwords failure under ContainsAny is swallowed (treated as an empty match) rather than wrapped, matching Weaviate's stopword semantics.

Source

Thrown at adapters/repos/db/inverted/searcher.go:616

	}
	children := make([]*propValuePair, len(operands))
	eg := enterrors.NewErrorGroupWrapper(s.logger)
	outerConcurrencyLimit := concurrency.BudgetFromCtx(ctx, concurrency.GOMAXPROCS)
	eg.SetLimit(outerConcurrencyLimit)

	concurrencyReductionFactor := min(len(operands), outerConcurrencyLimit)

	for i, clause := range operands {
		i, clause := i, clause
		eg.Go(func() error {
			ctx := concurrency.ContextWithFractionalBudget(ctx, concurrencyReductionFactor, concurrency.GOMAXPROCS)
			child, err := s.buildPropValuePair(ctx, &clause, className, class)
			// check for stopword errors on ContainsAny operator only at the end
			if err != nil && errors.Is(err, ErrOnlyStopwords) && operator == filters.ContainsAny {
				return nil
			}
			if err != nil {
				return fmt.Errorf("nested clause at pos %d: %w", i, err)
			}
			children[i] = child
			return nil
		}, clause)
	}
	if err := eg.Wait(); err != nil {
		return nil, fmt.Errorf("nested query: %w", err)
	}
	i := 0
	for _, c := range children {
		if c != nil {
			children[i] = c
			i++
		}
	}
	children = children[:i]

	// if all children were stopwords and the operator is ContainsAny,

View on GitHub (pinned to 75aa4b6d11)

Solutions

  1. Use 'nested clause at pos %d' to locate the failing operand in the query filter
  2. Fix the operand's filter (invalid property, operator, or value per the inner error)
  3. For stopword-only ContainsAny operands, adjust stopwords config or expect empty results
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at adapters/repos/db/inverted/searcher.go:616 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of weaviate/weaviate@75aa4b6d11 (2026-09-04). Data as JSON: /api/errors/d690f3c9a85b23dc. Report an issue: GitHub.