weaviate/weaviate · error

cannot vector-search on a class not vector-indexed

Error message

cannot vector-search on a class not vector-indexed

What it means

Hard rejection returned by the noop (skip=true) vector index when a vector search is attempted. The index exists only so a non-indexed class can hold objects without vectors; any search call is a programming/configuration error — the class was created with 'skip' set, so there is nothing to search.

Source

Thrown at adapters/repos/db/vector/noop/index.go:73

}

func (i *Index) AddMulti(ctx context.Context, docId uint64, vector [][]float32) error {
	// silently ignore
	return nil
}

func (i *Index) Delete(id ...uint64) error {
	// silently ignore
	return nil
}

func (i *Index) DeleteMulti(id ...uint64) error {
	// silently ignore
	return nil
}

func (i *Index) SearchByVector(ctx context.Context, vector []float32, k int, allow helpers.AllowList) ([]uint64, []float32, error) {
	return nil, nil, errors.Errorf("cannot vector-search on a class not vector-indexed")
}

func (i *Index) SearchByMultiVector(ctx context.Context, vector [][]float32, k int, allow helpers.AllowList) ([]uint64, []float32, error) {
	return nil, nil, errors.Errorf("cannot vector-search on a class not vector-indexed")
}

func (i *Index) SearchByVectorDistance(ctx context.Context, vector []float32, dist float32, maxLimit int64, allow helpers.AllowList) ([]uint64, []float32, error) {
	return nil, nil, errors.Errorf("cannot vector-search on a class not vector-indexed")
}

func (i *Index) SearchByMultiVectorDistance(ctx context.Context, vector [][]float32, dist float32, maxLimit int64, allow helpers.AllowList) ([]uint64, []float32, error) {
	return nil, nil, errors.Errorf("cannot multi-vector-search on a class not vector-indexed")
}

func (i *Index) UpdateUserConfig(updated schemaConfig.VectorIndexConfig, callback func()) error {
	callback()
	switch t := updated.(type) {
	case hnswconf.UserConfig:

View on GitHub (pinned to 75aa4b6d11)

Solutions

  1. Re-create the class without skip=true if vector search is needed, then reimport vectors
  2. Remove the vector-search query path for classes configured with skip
  3. Check client/API usage: GraphQL nearVector or hybrid queries against a skipped class will always fail
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at adapters/repos/db/vector/noop/index.go:73 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/3a2f2bd91fdac2ec. Report an issue: GitHub.