MemPalace/mempalace · error · ValueError
ids already exist in pgvector collection: {existing.ids}
Error message
ids already exist in pgvector collection: {existing.ids} What it means
Error "ids already exist in pgvector collection: {existing.ids}" thrown in MemPalace/mempalace.
Source
Thrown at mempalace/backends/pgvector.py:970
return [
row
for row in rows
if (id_set is None or row["id"] in id_set)
and _matches_where(row["metadata"], where)
and _matches_where_document(row["document"], where_document)
]
def add(self, *, documents, ids, metadatas=None, embeddings=None):
_validate_write_batch(
documents=documents, ids=ids, metadatas=metadatas, embeddings=embeddings
)
if embeddings is None:
raise ValueError("pgvector requires explicit embeddings")
if len(set(ids)) != len(ids):
raise ValueError("add ids must be unique")
existing = self.get(ids=list(ids), include=[])
if existing.ids:
raise ValueError(f"ids already exist in pgvector collection: {existing.ids}")
self.upsert(documents=documents, ids=ids, metadatas=metadatas, embeddings=embeddings)
def upsert(self, *, documents, ids, metadatas=None, embeddings=None):
_validate_write_batch(
documents=documents, ids=ids, metadatas=metadatas, embeddings=embeddings
)
if embeddings is None:
raise ValueError("pgvector requires explicit embeddings")
vectors, dimension = _normalize_vectors(embeddings)
self._ensure_table(dimension)
metadatas = metadatas or [{} for _ in ids]
rows = [
{
"id": str(doc_id),
"document": str(doc),
"metadata": _jsonable_metadata(meta),
"embedding": vector,
"updated_at": _utcnow(),View on GitHub (pinned to 06cb6987f0)
Solutions
- Use update/upsert for existing ids, or delete the conflicting ids first
When it happens
Trigger: Thrown at mempalace/backends/pgvector.py:970 when the library encounters an invalid state.
Common situations: Re-adding drawers that already exist in the table.
AI-assisted analysis of MemPalace/mempalace@06cb6987f0 (2026-08-15).
Data as JSON: /api/errors/b980ae47d296e224.
Report an issue: GitHub.