weaviate/weaviate · error
get vector input from modules provider: %w
Error message
get vector input from modules provider: %w
What it means
For standard (single-vector) targets, vectorFromModuleInput calls modules.VectorFromInput to vectorize the query text. This error wraps that module call's failure — the most common module-side failure in hybrid search when no explicit vector was supplied.
Source
Thrown at usecases/traverser/hybrid/searcher.go:301
}
}
}
func vectorFromModuleInput(ctx context.Context, class, input, targetVector string, modules modulesProvider) (models.Vector, error) {
isMultiVector, err := modules.IsTargetVectorMultiVector(class, targetVector)
if err != nil {
return nil, fmt.Errorf("get vector input from modules provider: is target vector multi vector: %w", err)
}
if isMultiVector {
vector, err := modules.MultiVectorFromInput(ctx, class, input, targetVector)
if err != nil {
return nil, fmt.Errorf("get multi vector input from modules provider: %w", err)
}
return vector, nil
}
vector, err := modules.VectorFromInput(ctx, class, input, targetVector)
if err != nil {
return nil, fmt.Errorf("get vector input from modules provider: %w", err)
}
return vector, nil
}
func getTargetVector(targetVectors []string) string {
if len(targetVectors) == 1 {
return targetVectors[0]
}
return ""
}
func performFusion(fusionAlgorithm int, weights []float64, resultSets [][]*search.Result, names []string) ([]search.Result, error) {
switch fusionAlgorithm {
case common_filters.HybridRankedFusion:
fused := FusionRanked(weights, resultSets, names)
return toSearchResults(fused), nil
case common_filters.HybridRelativeScoreFusion:
fused := FusionRelativeScore(weights, resultSets, names, true)View on GitHub (pinned to 75aa4b6d11)
Solutions
- Read the wrapped root error in logs to see which vectorizer failed and why.
- Supply the API key header (e.g. X-OpenAI-Api-Key) or fix module credentials in collection config.
- Confirm the vectorizer module is enabled server-side and the collection's vectorizer matches an available module.
- Provide an explicit query vector to bypass module vectorization, or retry after provider rate limits clear.
Example fix
// before
const res = await weaviate.graphql.hybrid("q", 0.5) // no key configured
// after
const client = weaviate.client({ ...config, headers: { "X-OpenAI-Api-Key": process.env.OPENAI_API_KEY } }) Defensive patterns
Strategy: retry
Validate before calling
if (!query || typeof query !== "string") {
throw new Error("hybrid query text must be a non-empty string before module vectorization");
}
if (!providerApiKey) throw new Error("vectorizer API key missing"); Try / catch
try {
return await hybridQuery();
} catch (e) {
if (String(e).includes("get vector input from modules provider")) {
await sleep(retryDelay); // handle provider rate limits/transient outages
return await hybridQuery();
}
throw e;
} Prevention
- Always configure the vectorizer's provider API key header.
- Ensure the collection's vectorizer module is listed in ENABLE_MODULES.
- Never send empty query strings to hybrid search.
- Add exponential backoff for provider rate-limit errors.
When it happens
Trigger: Hybrid search with alpha > 0 (dense leg needed) and no explicit vector, where the configured vectorizer module fails to convert the query string: bad/missing API key, provider HTTP error, rate limit, or empty query text rejected by the module.
Common situations: text2vec-openai/cohere/huggingface keys expired or absent; module not in ENABLE_MODULES; provider outage or quota exhaustion; empty-string hybrid queries.
Related errors
- no vector or modules provided for hybrid search
- get multi vector input from modules provider: %w
- target vector %q: %w
- parse vector config for %s: vectorizer module not found with
- hybrid: is target vector multi vector: %w
AI-assisted analysis of weaviate/weaviate@75aa4b6d11 (2026-09-04).
Data as JSON: /api/errors/44b3dc8d5d3069fd.
Report an issue: GitHub.