weaviate/weaviate · error

vectorize params: %w

Error message

vectorize params: %w

What it means

CrossClassVectorSearch (the GraphQL Explore query path) vectorizes the natural-language/params input via vectorFromExploreParams; if that fails, Weaviate wraps the error as ErrQueryVectorization with this message. It means a vectorizer module failed or refused to turn the explore params into a query vector — the query never reached the vector index.

Source

Thrown at usecases/traverser/explorer.go:807

				}
				if len(additionalProperties) > 0 {
					innerRef.Fields["_additional"] = additionalProperties
				}
			}
		}
	}
}

func (e *Explorer) CrossClassVectorSearch(ctx context.Context,
	params ExploreParams,
) ([]search.Result, error) {
	if err := e.validateExploreParams(params); err != nil {
		return nil, errors.Wrap(err, "invalid params")
	}

	vector, targetVector, err := e.vectorFromExploreParams(ctx, params)
	if err != nil {
		return nil, fmt.Errorf("vectorize params: %w", enterrors.NewErrQueryVectorization(err))
	}

	res, err := e.searcher.CrossClassVectorSearch(ctx, vector, targetVector, params.Offset, params.Limit, nil)
	if err != nil {
		return nil, fmt.Errorf("vector search: %w", err)
	}

	e.trackUsageExplore(res, params)

	results := []search.Result{}
	for _, item := range res {
		item.Beacon = crossref.NewLocalhost(item.ClassName, item.ID).String()
		err = e.appendResultsIfSimilarityThresholdMet(item, &results, params)
		if err != nil {
			return nil, fmt.Errorf("append results based on similarity: %w", err)
		}
	}

View on GitHub (pinned to 75aa4b6d11)

Solutions

  1. Check logs for the wrapped ErrQueryVectorization cause to identify the vectorizer
  2. Ensure the required vectorizer module is enabled (ENABLE_MODULES) and healthy
  3. Verify provider API keys and network egress for remote vectorizers
  4. Validate explore params (non-empty concepts, valid module params) before querying
  5. Retry on transient provider errors with backoff

Example fix

// before
{ Explore(nearText:{concepts:[]}) { distance certainty } }
// after (non-empty concepts and module enabled)
{ Explore(nearText:{concepts:["machine learning"]}) { distance certainty } }
Defensive patterns

Strategy: retry

Validate before calling

// ensure the module backing nearText is enabled before Explore
const modules = await (await fetch(`${WEAVIATE_URL}/v1/modules`)).json()
if (!modules['text2vec-openai'] && usingNearText) {
  throw new Error('text2vec module not enabled')
}

Try / catch

try {
  const res = await weaviate.explore().withNearText({concepts})...do()
} catch (err) {
  if (String(err).includes('vectorize params')) {
    if (isRateLimit(err)) return await withBackoff(() => retry())
    throw new Error('check vectorizer module config: ' + err)
  }
  throw err
}

Prevention

When it happens

Trigger: An Explore query where the configured vectorizer errors: missing module (no vectorizer for the explore request), text2vec provider failure (bad API key, network), or invalid nearText params (e.g. empty concepts with no module to vectorize).

Common situations: text2vec-transformers module not enabled/started in docker-compose; OPENAI/COHERE API key invalid or quota exceeded; querying Explore with nearVector/nearText when the corresponding module is not enabled.

Related errors


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