weaviate/weaviate · error
vectorize thermal: %v
Error message
vectorize thermal: %v
What it means
The nearDepth argument's searcher (searcher.go:34) invokes the depth (thermal-image) vectorizer's VectorizeDepth with the user-supplied Depth parameter. If the underlying inference service fails (multi2vec-clip/thermal module backend error), it is converted via errors.Errorf to "vectorize thermal: %v". The module name is historical ('thermal' images) though the argument is nearDepth.
Source
Thrown at usecases/modulecomponents/arguments/nearDepth/searcher.go:34
"github.com/pkg/errors"
"github.com/weaviate/weaviate/entities/dto"
"github.com/weaviate/weaviate/entities/modulecapabilities"
"github.com/weaviate/weaviate/entities/moduletools"
)
type Searcher[T dto.Embedding] struct {
vectorForParams modulecapabilities.VectorForParams[T]
}
func NewSearcher[T dto.Embedding](vectorizer bindVectorizer[T]) *Searcher[T] {
return &Searcher[T]{func(ctx context.Context, params any, className string,
findVectorFn modulecapabilities.FindVectorFn[T],
cfg moduletools.ClassConfig,
) (T, error) {
vector, err := vectorizer.VectorizeDepth(ctx, params.(*NearDepthParams).Depth, cfg)
if err != nil {
return nil, errors.Errorf("vectorize thermal: %v", err)
}
return vector, nil
}}
}
type bindVectorizer[T dto.Embedding] interface {
VectorizeDepth(ctx context.Context, thermal string, cfg moduletools.ClassConfig) (T, error)
}
func (s *Searcher[T]) VectorSearches() map[string]modulecapabilities.VectorForParams[T] {
vectorSearches := map[string]modulecapabilities.VectorForParams[T]{}
vectorSearches["nearDepth"] = s.vectorForParams
return vectorSearches
}
View on GitHub (pinned to 75aa4b6d11)
Solutions
- Ensure the depth/clip inference module container is running and reachable (check `docker compose ps` and Weaviate's module URL env vars like CLIP_INFERENCE_API)
- Retry with a valid numeric depth value matching the module's expected parameter
- Check the inference service logs for the underlying model error reported after 'vectorize thermal:'
- If the service is overloaded, scale it or increase timeouts; verify network connectivity between Weaviate and the module service
Example fix
// GraphQL before (fails when inference service is down or param malformed)
{ Get { ThermalImage(limit: 5, nearDepth: { depth: "surface" }) { image } } }
// after (valid numeric depth, service reachable)
{ Get { ThermalImage(limit: 5, nearDepth: { depth: 2.5 }) { image } } } Defensive patterns
Strategy: fallback
Validate before calling
// validate the nearDepth input and module availability before querying
if typeof depth !== 'number' || isNaN(depth) || depth < 0 {
throw new Error('nearDepth.depth must be a non-negative number');
}
const modules = await weaviate.modules.list();
if (!modules.includes('multi2vec-clip')) {
throw new Error('depth/thermal vectorizer module not enabled on this instance');
} Type guard
function isValidDepthParams(p) {
return p != null && typeof p.depth === 'number' && isFinite(p.depth) && p.depth >= 0;
} Try / catch
try {
const res = await client.graphql.get().withNearDepth({ depth: 2.5 }).do();
} catch (e) {
if (String(e).includes('vectorize thermal')) {
// inference service failed: check module container health, then retry
}
} Prevention
- Deploy and monitor the depth/clip inference container alongside Weaviate
- Pass depth as a numeric value, never a string
- Watch the nested cause after 'vectorize thermal:' — it names the actual inference error
- Verify module URL env vars (e.g. CLIP_INFERENCE_API) point to reachable services
When it happens
Trigger: GraphQL query using nearDepth(depth: X) on a class vectorized by a depth-image module, when the vectorization call fails: inference container down/unreachable, malformed Depth param (empty/non-number), model failing on the input, or timeout calling the module service.
Common situations: The multi2vec-clip (or depth-specific) inference container not deployed/scaled in docker-compose; module service OOM or crashed on a bad image; network policy blocking Weaviate→module traffic; passing depth as a string instead of a number.
Related errors
- vectorize image: %v
- vectorize imu: %v
- vectorize move away from: %v
- Unknown aggregation type ${aggType}
- unknown aggregation type ${aggType}
AI-assisted analysis of weaviate/weaviate@75aa4b6d11 (2026-09-04).
Data as JSON: /api/errors/db76e4e19cfb0d98.
Report an issue: GitHub.