{"record":{"id":"73c2dd756b3380eb","repo":"microsoft/semantic-kernel","slug":"vector-field-options-vector-property-name-not","errorCode":null,"errorMessage":"Vector field '{options.vector_property_name}' not found in the data model definition.","messagePattern":"Vector field '(.+?)' not found in the data model definition\\.","errorType":"exception","errorClass":"VectorStoreModelException","httpStatus":null,"severity":"error","filePath":"python/semantic_kernel/connectors/azure_cosmos_db.py","lineNumber":441,"sourceCode":"                case \"vector-ivf\":\n                    if \"numList\" in kwargs:\n                        index[\"cosmosSearchOptions\"][\"numList\"] = kwargs[\"numList\"]\n            indexes.append(index)\n\n        return {\"createIndexes\": self.collection_name, \"indexes\": indexes}\n\n    @override\n    async def _inner_vector_search(\n        self,\n        options: VectorSearchOptions,\n        values: Any | None = None,\n        vector: Sequence[float | int] | None = None,\n        **kwargs: Any,\n    ) -> KernelSearchResults[VectorSearchResult[TModel]]:\n        collection = self._get_collection()\n        vector_field = self.definition.try_get_vector_field(options.vector_property_name)\n        if not vector_field:\n            raise VectorStoreModelException(\n                f\"Vector field '{options.vector_property_name}' not found in the data model definition.\"\n            )\n        if not vector:\n            vector = await self._generate_vector_from_values(values, options)\n        vector_search_query: dict[str, Any] = {\n            \"k\": options.top + options.skip,\n            \"index\": f\"{vector_field.storage_name or vector_field.name}_\",\n            \"vector\": vector,\n            \"path\": vector_field.storage_name or vector_field.name,\n        }\n        if filter := self._build_filter(options.filter):  # type: ignore\n            vector_search_query[\"filter\"] = filter if isinstance(filter, dict) else {\"$and\": filter}\n\n        projection_query: dict[str, int | dict] = {\n            field: 1\n            for field in self.definition.get_names(\n                include_vector_fields=options.include_vectors,\n                include_key_field=False,  # _id is always included","sourceCodeStart":423,"sourceCodeEnd":459,"githubUrl":"https://github.com/microsoft/semantic-kernel/blob/c028a0c7dc4f0814cdcbaba9d998f187a41197bf/python/semantic_kernel/connectors/azure_cosmos_db.py#L423-L459","documentation":"During vector search on a CosmosMongoCollection, the connector resolves the vector field named in VectorSearchOptions.vector_property_name against the data model. If no such vector field exists, it raises VectorStoreModelException before issuing the query. This is a precondition check; no network call has been made.","triggerScenarios":"Raised in CosmosMongoCollection._inner_vector_search when definition.try_get_vector_field(options.vector_property_name) returns falsy. Triggered when the caller passes a VectorSearchOptions with a vector_property_name that does not match any VectorStoreRecordVectorField name/storage_name in the model, or when the model has no vector fields at all.","commonSituations":"Typo in vector_property_name. Passing the data-field name instead of the vector-field name. Searching a model that defines multiple vector fields but referencing one that was removed. Defaulting vector_property_name incorrectly when the model has several vector fields.","solutions":["Set VectorSearchOptions.vector_property_name to an existing vector field's name.","If the model has a single vector field, omit vector_property_name or ensure the default resolution works.","Verify spelling and that the field is declared as a vector (not a data) field."],"exampleFix":"// before\noptions = VectorSearchOptions(vector_property_name=\"title\", top=5)\n// after\noptions = VectorSearchOptions(vector_property_name=\"embedding\", top=5)","handlingStrategy":"validation","validationCode":"vf = definition.try_get_vector_field(options.vector_property_name)\nif not vf:\n    available = [f.name for f in definition.vector_fields]\n    raise ValueError(f\"Unknown vector field '{options.vector_property_name}'. Available: {available}\")\n","typeGuard":"def vector_field_exists(definition, name: str | None) -> bool:\n    return definition.try_get_vector_field(name) is not None\n","tryCatchPattern":null,"preventionTips":["Assert the vector field exists before calling search.","Log available vector field names when constructing search options.","Keep search call sites in sync with model field renames."],"tags":["azure-cosmos-db","mongodb","vector-store","search","data-model"],"backgroundTag":null,"analyzedSha":"c028a0c7dc4f0814cdcbaba9d998f187a41197bf","analyzedAt":"2026-08-13T13:48:05.040Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}