MemPalace/mempalace · error · ValueError
metadatas length {len(metadatas)} does not match ids length
Error message
metadatas length {len(metadatas)} does not match ids length {n} What it means
Error "metadatas length {len(metadatas)} does not match ids length {n}" thrown in MemPalace/mempalace.
Source
Thrown at mempalace/backends/pgvector.py:304
return True
stack.append(value)
elif isinstance(value, list):
stack.extend(item for item in value if isinstance(item, dict))
return False
def _validate_write_batch(
*,
documents: list[str],
ids: list[str],
metadatas: Optional[list[dict]],
embeddings: Optional[list[list[float]]],
) -> None:
n = len(ids)
if len(documents) != n:
raise ValueError(f"documents length {len(documents)} does not match ids length {n}")
if metadatas is not None and len(metadatas) != n:
raise ValueError(f"metadatas length {len(metadatas)} does not match ids length {n}")
if embeddings is not None and len(embeddings) != n:
raise ValueError(f"embeddings length {len(embeddings)} does not match ids length {n}")
def _as_vector_array(vector: list[float]) -> np.ndarray:
arr = np.asarray(vector, dtype=np.float32)
if arr.ndim != 1 or arr.size == 0:
raise ValueError("embedding must be a non-empty 1D vector")
return arr
def _normalize_vectors(embeddings: list[list[float]]) -> tuple[list[list[float]], int]:
vectors = []
dims = set()
for embedding in embeddings:
arr = _as_vector_array(embedding)
vectors.append(arr.astype(float).tolist())
dims.add(int(arr.size))View on GitHub (pinned to 06cb6987f0)
Solutions
- Pass one metadata dict per id; align metadatas and ids list lengths
When it happens
Trigger: Thrown at mempalace/backends/pgvector.py:304 when the library encounters an invalid state.
Common situations: Metadatas list length diverged from ids list length.
AI-assisted analysis of MemPalace/mempalace@06cb6987f0 (2026-08-15).
Data as JSON: /api/errors/a585c7de83b9c283.
Report an issue: GitHub.