MemPalace/mempalace · error · ValueError

update requires at least one of documents, metadatas, embedd

Error message

update requires at least one of documents, metadatas, embeddings

What it means

Error "update requires at least one of documents, metadatas, embeddings" thrown in MemPalace/mempalace.

Source

Thrown at mempalace/backends/pgvector.py:997

        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(),
            }
            for doc_id, doc, meta, vector in zip(ids, documents, metadatas, vectors)
        ]
        self._client.upsert_rows(self._table, rows)
        self._backend._write_marker(self._palace, self._config)

    def update(self, *, ids, documents=None, metadatas=None, embeddings=None):
        if documents is None and metadatas is None and embeddings is None:
            raise ValueError("update requires at least one of documents, metadatas, embeddings")
        n = len(ids)
        for label, value in (
            ("documents", documents),
            ("metadatas", metadatas),
            ("embeddings", embeddings),
        ):
            if value is not None and len(value) != n:
                raise ValueError(f"{label} length {len(value)} does not match ids length {n}")
        existing = self.get(ids=ids, include=["documents", "metadatas", "embeddings"])
        by_id = {
            rid: (existing.documents[i], existing.metadatas[i], existing.embeddings[i])
            for i, rid in enumerate(existing.ids)
            if existing.embeddings is not None
        }
        out_ids, out_docs, out_metas, out_embeddings = [], [], [], []
        for idx, doc_id in enumerate(ids):
            if doc_id not in by_id:
                continue

View on GitHub (pinned to 06cb6987f0)

Solutions

  1. Pass at least one of documents, metadatas, or embeddings to update

When it happens

Trigger: Thrown at mempalace/backends/pgvector.py:997 when the library encounters an invalid state.

Common situations: Update invoked with nothing to change.


AI-assisted analysis of MemPalace/mempalace@06cb6987f0 (2026-08-15). Data as JSON: /api/errors/9092a8107d7cdeb1. Report an issue: GitHub.