{"record":{"id":"2fcab7d23742d875","repo":"microsoft/semantic-kernel","slug":"field-name-in-memory-score-key-is-reserved-for","errorCode":null,"errorMessage":"Field name '{IN_MEMORY_SCORE_KEY}' is reserved for internal use.","messagePattern":"Field name '(.+?)' is reserved for internal use\\.","errorType":"exception","errorClass":"VectorStoreModelValidationError","httpStatus":null,"severity":"error","filePath":"python/semantic_kernel/connectors/in_memory.py","lineNumber":614,"sourceCode":"        > - `max_filter_literal_collection_size=256`\n        > - `max_filter_sequence_repeat_size=1024`\n        > You can override these limits by passing them through `kwargs` or by setting them on the collection\n        > instance after initialization.\n\n        \"\"\"\n        super().__init__(\n            record_type=record_type,\n            definition=definition,\n            collection_name=collection_name,\n            embedding_generator=embedding_generator,\n            **kwargs,\n        )\n\n    def _validate_data_model(self):\n        \"\"\"Check if the In Memory Score key is not used.\"\"\"\n        super()._validate_data_model()\n        if IN_MEMORY_SCORE_KEY in self.definition.names:\n            raise VectorStoreModelValidationError(f\"Field name '{IN_MEMORY_SCORE_KEY}' is reserved for internal use.\")\n\n    @override\n    async def _inner_delete(self, keys: Sequence[TKey], **kwargs: Any) -> None:\n        for key in keys:\n            self.inner_storage.pop(key, None)\n\n    @override\n    async def _inner_get(\n        self, keys: Sequence[TKey] | None = None, options: GetFilteredRecordOptions | None = None, **kwargs: Any\n    ) -> Any | OneOrMany[TModel] | None:\n        if not keys:\n            if options is not None:\n                raise NotImplementedError(\"Get without keys is not yet implemented.\")\n            return None\n        return [self.inner_storage[key] for key in keys if key in self.inner_storage]\n\n    @override\n    async def _inner_upsert(self, records: Sequence[Any], **kwargs: Any) -> Sequence[TKey]:","sourceCodeStart":596,"sourceCodeEnd":632,"githubUrl":"https://github.com/microsoft/semantic-kernel/blob/c028a0c7dc4f0814cdcbaba9d998f187a41197bf/python/semantic_kernel/connectors/in_memory.py#L596-L632","documentation":"Thrown by _validate_data_model (in_memory.py:613-614) as VectorStoreModelValidationError when the data model defines a field named 'in_memory_search_score' (IN_MEMORY_SCORE_KEY). The collection writes vector search scores into each result record under that key, so a user field with the same name would collide and corrupt either the score or the data.","triggerScenarios":"Defining a VectorStoreRecordDefinition or pydantic model with a field/storage_name equal to 'in_memory_search_score' and creating/getting an InMemoryCollection for it; the validation runs during collection initialization.","commonSituations":"Choosing a generic score field name; copying a model schema from another store without checking reserved names; version upgrades that introduce the reserved key.","solutions":["Rename the field to anything other than 'in_memory_search_score'.","If you need a score field, name it e.g. 'score', 'relevance', or 'my_score'."],"exampleFix":"# before\nclass Rec(VectorStoreRecord):\n    id: str\n    in_memory_search_score: float   # reserved!\n# after\nclass Rec(VectorStoreRecord):\n    id: str\n    relevance_score: float","handlingStrategy":"validation","validationCode":"RESERVED = 'in_memory_search_score'\ndef check_field_names(names: list[str]) -> None:\n    if RESERVED in names:\n        raise ValueError(f\"field name '{RESERVED}' is reserved by InMemoryCollection\")","typeGuard":"from semantic_kernel.connectors.in_memory import IN_MEMORY_SCORE_KEY\ndef is_safe_field_name(name: str) -> bool:\n    return name != IN_MEMORY_SCORE_KEY","tryCatchPattern":"try:\n    collection = store.get_collection(record_type=Rec, definition=definition)\n    await collection.create_collection()\nexcept VectorStoreModelValidationError as e:\n    # rename the colliding field and recreate the definition\n    ...","preventionTips":["Reserve 'in_memory_search_score' as off-limits when designing in-memory models.","Validate field names against IN_MEMORY_SCORE_KEY before creating a collection."],"tags":["in-memory","vector-store","data-model","validation","semantic-kernel"],"backgroundTag":null,"analyzedSha":"c028a0c7dc4f0814cdcbaba9d998f187a41197bf","analyzedAt":"2026-08-13T13:48:05.040Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}