MemPalace/mempalace · error · BackendClosedError
PgVectorCollection has been closed
Error message
PgVectorCollection has been closed
What it means
Error "PgVectorCollection has been closed" thrown in MemPalace/mempalace.
Source
Thrown at mempalace/backends/pgvector.py:848
client: _PgVectorClient,
config: _PgVectorConfig,
palace: PalaceRef,
collection_name: str,
table: str,
):
self._backend = backend
self._client = client
self._config = config
self._palace = palace
self._collection_name = collection_name
self._table = table
self._lock = threading.RLock()
self._closed = False
self._known_dimension: Optional[int] = None
def _ensure_open(self) -> None:
if self._closed or self._backend._closed:
raise BackendClosedError("PgVectorCollection has been closed")
def _table_exists(self) -> bool:
return self._client.table_exists(self._table)
def _marker_exists(self) -> bool:
return self._backend._marker_exists(self._palace)
def get_stored_embedder_identity(self):
return self._backend._get_embedder_identity(self._palace, self._collection_name)
def set_embedder_identity(self, identity) -> None:
# Sidecar-backed (see PgVectorBackend), so this records even on a
# brand-new palace whose mismatch marker doesn't exist yet.
self._backend._set_embedder_identity(self._palace, self._collection_name, identity)
def _ensure_table(self, dimension: int) -> None:
if dimension <= 0:
raise ValueError("embedding dimension must be positive")View on GitHub (pinned to 06cb6987f0)
Solutions
- Do not use the collection after close(); re-open it via the backend
When it happens
Trigger: Thrown at mempalace/backends/pgvector.py:848 when the library encounters an invalid state.
Common situations: Collection handle was closed and then reused.
AI-assisted analysis of MemPalace/mempalace@06cb6987f0 (2026-08-15).
Data as JSON: /api/errors/6afea9e61592707a.
Report an issue: GitHub.