microsoft/semantic-kernel · error · VectorStoreModelException

Vector field '{options.vector_property_name}' not found in t

Error message

Vector field '{options.vector_property_name}' not found in the data model definition.

What it means

A VectorStoreModelException raised at the start of _inner_search when options.vector_property_name does not resolve to a vector field via definition.try_get_vector_field(). It means the search requested a vector property that the collection's data model does not declare as a vector field.

Source

Thrown at python/semantic_kernel/connectors/chroma.py:332

            records.append(record)
        return records

    @override
    async def _inner_delete(self, keys: Sequence[TKey], **kwargs: Any) -> None:
        self._get_collection().delete(ids=keys)  # type: ignore

    @override
    async def _inner_search(
        self,
        search_type: SearchType,
        options: VectorSearchOptions,
        values: Any | None = None,
        vector: Sequence[float | int] | None = None,
        **kwargs: Any,
    ) -> KernelSearchResults[VectorSearchResult[TModel]]:
        vector_field = self.definition.try_get_vector_field(options.vector_property_name)
        if not vector_field:
            raise VectorStoreModelException(
                f"Vector field '{options.vector_property_name}' not found in the data model definition."
            )
        include = ["metadatas", "distances"]
        if options.include_vectors:
            include.append("documents" if self.embedding_func else "embeddings")
        args: dict[str, Any] = {
            "n_results": options.top,
            "include": include,
        }
        if filter := self._build_filter(options.filter):  # type: ignore
            args["where"] = filter if isinstance(filter, dict) else {"$and": filter}
        if self.embedding_func:
            args["query_texts"] = values
        elif vector is not None:
            args["query_embeddings"] = vector
        else:
            args["query_embeddings"] = await self._generate_vector_from_values(values, options)
        results = self._get_collection().query(**args)

View on GitHub (pinned to c028a0c7dc)

Solutions

  1. Set options.vector_property_name to the exact name of a VectorStoreRecordVectorField declared in the collection definition.
  2. If the model has exactly one vector field, ensure the options object defaults correctly (omit vector_property_name so the framework resolves it).

Example fix

// before
results = await collection.vectorized_search(vector=v, options=VectorSearchOptions(vector_property_name="vec"))
// after
results = await collection.vectorized_search(vector=v, options=VectorSearchOptions(vector_property_name="embedding"))  # match the field name
Defensive patterns

Strategy: validation

Validate before calling

vector_names = {f.name for f in definition.vector_fields}
if options.vector_property_name not in vector_names:
    raise ValueError(f"vector_property_name must be one of {vector_names}")

Type guard

def is_known_vector_property(definition, name: str) -> bool:
    return definition.try_get_vector_field(name) is not None

Try / catch

from semantic_kernel.exceptions.vector_store_exceptions import VectorStoreModelException
try:
    await collection.vectorized_search(vector=v, options=options)
except VectorStoreModelException as e:
    if "not found in the data model" in str(e):
        options.vector_property_name = next(f.name for f in definition.vector_fields)
        await collection.vectorized_search(vector=v, options=options)

Prevention

When it happens

Trigger: Calling collection.search(...) / _inner_search with a VectorSearchOptions whose vector_property_name is misspelled, refers to a non-vector field, or was omitted while the model has no unambiguous default vector field for try_get_vector_field to pick.

Common situations: Renaming a vector property in the model but forgetting to update search call sites; passing options built for a different collection/model; multi-field models where the wrong property name is supplied.

Related errors


AI-assisted analysis of microsoft/semantic-kernel@c028a0c7dc (2026-08-13). Data as JSON: /api/errors/1bdb936bbe2946ca. Report an issue: GitHub.