{"record":{"id":"c91bdee3c8c86912","repo":"microsoft/semantic-kernel","slug":"get-without-keys-is-not-yet-implemented-c91bde","errorCode":null,"errorMessage":"Get without keys is not yet implemented.","messagePattern":"Get without keys is not yet implemented\\.","errorType":"exception","errorClass":"NotImplementedError","httpStatus":null,"severity":"error","filePath":"python/semantic_kernel/connectors/in_memory.py","lineNumber":627,"sourceCode":"\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]:\n        updated_keys = []\n        for record in records:\n            record = AttributeDict(record)\n            self.inner_storage[record[self._key_field_name]] = record\n            updated_keys.append(record[self._key_field_name])\n        return updated_keys\n\n    def _deserialize_store_models_to_dicts(self, records: Sequence[Any], **kwargs: Any) -> Sequence[dict[str, Any]]:\n        return records\n\n    def _serialize_dicts_to_store_models(self, records: Sequence[dict[str, Any]], **kwargs: Any) -> Sequence[Any]:\n        return records\n","sourceCodeStart":609,"sourceCodeEnd":645,"githubUrl":"https://github.com/microsoft/semantic-kernel/blob/c028a0c7dc4f0814cdcbaba9d998f187a41197bf/python/semantic_kernel/connectors/in_memory.py#L609-L645","documentation":"Thrown by _inner_get (in_memory.py:626-627) as NotImplementedError when collection.get() is called with GetFilteredRecordOptions but no keys. The in-memory store supports keyed reads and vector search, but not a filtered scan via get(); the guard makes the gap explicit rather than silently returning None.","triggerScenarios":"Calling `await collection.get(options=GetFilteredRecordOptions(...))` (or any get with options but an empty/None keys argument).","commonSituations":"Porting code from another store that supports filtered get(); assuming get() mirrors search() semantics; passing options by default from a generic layer.","solutions":["Pass explicit keys to collection.get(): `await collection.get(keys=[...])`.","For filtered retrieval, use vector/filtered search or iterate collection.inner_storage directly in tests.","If you only need all records, read inner_storage or upsert+search."],"exampleFix":"# before\nopts = GetFilteredRecordOptions(...)\nrows = await collection.get(options=opts)   # no keys -> NotImplementedError\n# after\nrows = await collection.get(keys=[1, 2, 3])","handlingStrategy":"validation","validationCode":"async def safe_get(collection, keys=None, options=None):\n    if not keys and options is not None:\n        raise ValueError(\"InMemoryCollection.get does not support filtered reads; pass keys\")\n    return await collection.get(keys=keys, options=options)","typeGuard":null,"tryCatchPattern":"try:\n    rows = await collection.get(options=opts)\nexcept NotImplementedError:\n    # fall back to keyed reads or a search-based retrieval\n    rows = await collection.get(keys=known_keys)","preventionTips":["Always pass keys to InMemoryCollection.get().","Use search(), not get(), for filtered retrieval.","Guard generic layers that auto-attach GetFilteredRecordOptions."],"tags":["in-memory","vector-store","not-implemented","semantic-kernel"],"backgroundTag":null,"analyzedSha":"c028a0c7dc4f0814cdcbaba9d998f187a41197bf","analyzedAt":"2026-08-13T13:48:05.040Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}