{"record":{"id":"83999b32d96fccbe","repo":"microsoft/semantic-kernel","slug":"remove-failed-due-to-e","errorCode":null,"errorMessage":"Remove failed due to: {e}","messagePattern":"Remove failed due to: (.+?)","errorType":"exception","errorClass":"ServiceResponseException","httpStatus":null,"severity":"error","filePath":"python/semantic_kernel/connectors/memory_stores/milvus/milvus_memory_store.py","lineNumber":377,"sourceCode":"            collection_name (str): Collection to remove from\n            keys (List[str]): The list of keys.\n\n        Raises:\n            Exception: Collection doesnt exist.\n            e: Failure to remove key.\n        \"\"\"\n        if collection_name not in utility.list_collections():\n            logger.debug(f\"Collection {collection_name} does not exist, cannot remove.\")\n            raise ServiceResourceNotFoundError(f\"Collection {collection_name} does not exist, cannot remove.\")\n        try:\n            self.collections[collection_name].load()\n            result = self.collections[collection_name].delete(\n                expr=f\"{SEARCH_FIELD_ID} in {keys}\",\n            )\n            self.collections[collection_name].flush()\n        except Exception as e:\n            logger.debug(f\"Remove failed due to: {e}\")\n            raise ServiceResponseException(f\"Remove failed due to: {e}\") from e\n        if result.delete_count != len(keys):\n            logger.debug(f\"Failed to remove all keys, {result.delete_count} removed out of {len(keys)}\")\n            raise ServiceResponseException(\n                f\"Failed to remove all keys, {result.delete_count} removed out of {len(keys)}\"\n            )\n\n    async def get_nearest_matches(\n        self,\n        collection_name: str,\n        embedding: ndarray,\n        limit: int,\n        min_relevance_score: float = 0.0,\n        with_embeddings: bool = False,\n    ) -> list[tuple[MemoryRecord, float]]:\n        \"\"\"Find the nearest `limit` matches for an embedding.\n\n        Args:\n            collection_name (str): The collection to search.","sourceCodeStart":359,"sourceCodeEnd":395,"githubUrl":"https://github.com/microsoft/semantic-kernel/blob/c028a0c7dc4f0814cdcbaba9d998f187a41197bf/python/semantic_kernel/connectors/memory_stores/milvus/milvus_memory_store.py#L359-L395","documentation":"Raised as a ServiceResponseException in MilvusMemoryStore.remove_batch when .load(), .delete(), or .flush() throws any Exception during record deletion. The original exception is chained and its message interpolated, exposing the underlying Milvus SDK error.","triggerScenarios":"Milvus delete fails due to connection errors, an invalid delete expression (built as expr=f'{SEARCH_FIELD_ID} in {keys}'), server-side issues, or flush timeouts.","commonSituations":"Network interruption during delete/flush. Malformed keys list producing an invalid expression. Milvus query node under memory pressure during load(). SDK/server version mismatch.","solutions":["Read the interpolated {e} to find the root cause.","Ensure keys form a valid Milvus 'in' expression.","Retry on transient connection/server errors with backoff.","Check Milvus server logs and query-node health."],"exampleFix":"// before\nawait store.remove_batch('docs', keys)  # ServiceResponseException: Remove failed due to: ...\n// after\ntry:\n    await store.remove_batch('docs', keys)\nexcept ServiceResponseException as e:\n    logging.error('Milvus remove failed: %s', e)\n    raise","handlingStrategy":"try-catch","validationCode":"def valid_milvus_keys(keys: list[str]) -> bool:\n    return bool(keys) and all(isinstance(k, str) and k for k in keys)\n\nif not valid_milvus_keys(keys):\n    raise ValueError('Invalid keys for Milvus delete expression')","typeGuard":null,"tryCatchPattern":"from semantic_kernel.exceptions import ServiceResponseException\n\ntry:\n    await store.remove_batch('docs', keys)\nexcept ServiceResponseException as e:\n    logging.error('Milvus remove failed: %s', e)\n    raise","preventionTips":["Ensure keys form a valid Milvus 'in' expression for delete.","Retry transient connection/server errors with backoff.","Check Milvus query-node health for load() failures.","Log the chained exception to classify the failure."],"tags":["milvus","remove","service-response","runtime","python"],"backgroundTag":null,"analyzedSha":"c028a0c7dc4f0814cdcbaba9d998f187a41197bf","analyzedAt":"2026-08-13T13:48:05.040Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}