{"record":{"id":"6afea9e61592707a","repo":"MemPalace/mempalace","slug":"pgvectorcollection-has-been-closed","errorCode":null,"errorMessage":"PgVectorCollection has been closed","messagePattern":"PgVectorCollection has been closed","errorType":"exception","errorClass":"BackendClosedError","httpStatus":null,"severity":"error","filePath":"mempalace/backends/pgvector.py","lineNumber":848,"sourceCode":"        client: _PgVectorClient,\n        config: _PgVectorConfig,\n        palace: PalaceRef,\n        collection_name: str,\n        table: str,\n    ):\n        self._backend = backend\n        self._client = client\n        self._config = config\n        self._palace = palace\n        self._collection_name = collection_name\n        self._table = table\n        self._lock = threading.RLock()\n        self._closed = False\n        self._known_dimension: Optional[int] = None\n\n    def _ensure_open(self) -> None:\n        if self._closed or self._backend._closed:\n            raise BackendClosedError(\"PgVectorCollection has been closed\")\n\n    def _table_exists(self) -> bool:\n        return self._client.table_exists(self._table)\n\n    def _marker_exists(self) -> bool:\n        return self._backend._marker_exists(self._palace)\n\n    def get_stored_embedder_identity(self):\n        return self._backend._get_embedder_identity(self._palace, self._collection_name)\n\n    def set_embedder_identity(self, identity) -> None:\n        # Sidecar-backed (see PgVectorBackend), so this records even on a\n        # brand-new palace whose mismatch marker doesn't exist yet.\n        self._backend._set_embedder_identity(self._palace, self._collection_name, identity)\n\n    def _ensure_table(self, dimension: int) -> None:\n        if dimension <= 0:\n            raise ValueError(\"embedding dimension must be positive\")","sourceCodeStart":830,"sourceCodeEnd":866,"githubUrl":"https://github.com/MemPalace/mempalace/blob/06cb6987f02610784fefbad4b2bd5d026d164ba6/mempalace/backends/pgvector.py#L830-L866","documentation":"Error \"PgVectorCollection has been closed\" thrown in MemPalace/mempalace.","triggerScenarios":"Thrown at mempalace/backends/pgvector.py:848 when the library encounters an invalid state.","commonSituations":"Collection handle was closed and then reused.","solutions":["Do not use the collection after close(); re-open it via the backend"],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"06cb6987f02610784fefbad4b2bd5d026d164ba6","analyzedAt":"2026-08-15T03:03:36.213Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}