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
- Set options.vector_property_name to the exact name of a VectorStoreRecordVectorField declared in the collection definition.
- 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
- Set VectorSearchOptions.vector_property_name to a declared vector field name.
- With a single vector field, omit vector_property_name to let the framework resolve it.
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
- Vector field '{options.vector_property_name}' not found in t
- Distance function '{vector_field.distance_function}' is not
- Chroma only supports one vector field, but {len(self.definit
- Field '{node.attr}' not in data model (storage property name
- Field '{node.id}' not in data model (storage property names
AI-assisted analysis of microsoft/semantic-kernel@c028a0c7dc (2026-08-13).
Data as JSON: /api/errors/1bdb936bbe2946ca.
Report an issue: GitHub.