{"record":{"id":"c8fa991ee6dd2621","repo":"microsoft/semantic-kernel","slug":"failed-to-delete-item-s","errorCode":null,"errorMessage":"Failed to delete item(s).","messagePattern":"Failed to delete item\\(s\\)\\.","errorType":"exception","errorClass":"VectorStoreOperationException","httpStatus":null,"severity":"error","filePath":"python/semantic_kernel/connectors/azure_cosmos_db.py","lineNumber":772,"sourceCode":"        query = (\n            f\"SELECT {self._build_select_clause(include_vectors)} FROM c WHERE \"  # nosec: B608\n            f\"c.id IN ({', '.join([f'@id{i}' for i in range(len(keys))])})\"  # nosec: B608\n        )  # nosec: B608\n        parameters: list[dict[str, Any]] = [{\"name\": f\"@id{i}\", \"value\": _get_key(key)} for i, key in enumerate(keys)]\n\n        container_proxy = await self._get_container_proxy(self.collection_name, **kwargs)\n        return [item async for item in container_proxy.query_items(query=query, parameters=parameters)]\n\n    @override\n    async def _inner_delete(self, keys: Sequence[TNoSQLKey], **kwargs: Any) -> None:  # type: ignore\n        container_proxy = await self._get_container_proxy(self.collection_name, **kwargs)\n        results = await asyncio.gather(\n            *[container_proxy.delete_item(item=_get_key(key), partition_key=_get_partition_key(key)) for key in keys],\n            return_exceptions=True,\n        )\n        exceptions = [result for result in results if isinstance(result, Exception)]\n        if exceptions:\n            raise VectorStoreOperationException(\"Failed to delete item(s).\", exceptions)\n\n    @override\n    async def _inner_search(\n        self,\n        search_type: SearchType,\n        options: VectorSearchOptions,\n        values: Any | None = None,\n        vector: Sequence[float | int] | None = None,\n        **kwargs: Any,\n    ) -> KernelSearchResults[VectorSearchResult[TModel]]:\n        params = [{\"name\": \"@top\", \"value\": options.top}]\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)","sourceCodeStart":754,"sourceCodeEnd":790,"githubUrl":"https://github.com/microsoft/semantic-kernel/blob/c028a0c7dc4f0814cdcbaba9d998f187a41197bf/python/semantic_kernel/connectors/azure_cosmos_db.py#L754-L790","documentation":"CosmosNoSqlCollection._inner_delete deletes items concurrently with asyncio.gather(..., return_exceptions=True), then collects any exceptions. If one or more deletes failed, it raises VectorStoreOperationException with the gathered exceptions attached. Partial failure is possible: some items may have been deleted.","triggerScenarios":"Raised in _inner_delete when at least one of the per-key delete_item calls raised. Causes: key not found (CosmosResourceNotFoundError), partition key mismatch, throttling (429), auth failure, network error.","commonSituations":"Deleting keys that don't exist. Wrong partition key derivation (_get_partition_key). Throttling under concurrent deletes. Transient network errors. Auth token expiry mid-batch.","solutions":["Inspect the 'exceptions' list attached to the error to see which keys failed and why.","For 'not found' errors, decide whether to treat as success (idempotent delete) or report upstream.","Retry the failed keys with exponential backoff for transient (429/network) errors.","Verify _get_partition_key produces the correct partition key for each record."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try:\n    await collection.delete(keys=keys)\nexcept VectorStoreOperationException as e:\n    excs = e.args[1] if len(e.args) > 1 else []\n    # classify per-key failures; retry transient ones; treat 'not found' as success if idempotent\n","preventionTips":["Make deletes idempotent: tolerate 'not found' as success.","Batch deletes below throttling thresholds or retry on 429.","Verify partition-key derivation matches the container's partition scheme."],"tags":["azure-cosmos-db","vector-store","delete","runtime","partial-failure"],"backgroundTag":null,"analyzedSha":"c028a0c7dc4f0814cdcbaba9d998f187a41197bf","analyzedAt":"2026-08-13T13:48:05.040Z","schemaVersion":2},"datasetVersion":"2026-08-14T10:17:34.591Z"}