MemPalace/mempalace · error · DimensionMismatchError

pgvector batch cannot mix embedding dimensions {sorted(dims)

Error message

pgvector batch cannot mix embedding dimensions {sorted(dims)}

What it means

Error "pgvector batch cannot mix embedding dimensions {sorted(dims)}" thrown in MemPalace/mempalace.

Source

Thrown at mempalace/backends/pgvector.py:324

        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))
    if len(dims) > 1:
        raise DimensionMismatchError(
            f"pgvector batch cannot mix embedding dimensions {sorted(dims)}"
        )
    return vectors, dims.pop() if dims else 0


def _jsonable_metadata(meta: dict | None) -> dict:
    try:
        value = json.loads(json.dumps(meta or {}, ensure_ascii=False))
    except (TypeError, ValueError):
        value = {}
    return value if isinstance(value, dict) else {}


def _vector_distance(query: np.ndarray, vector: list[float] | None) -> Optional[float]:
    if vector is None:
        return None
    vec = _as_vector_array(vector)
    if vec.size != query.size:

View on GitHub (pinned to 06cb6987f0)

Solutions

  1. Re-embed all rows with a single model so every vector has the same dimension

When it happens

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

Common situations: Batch mixed vectors from two embedding models with different dimensions.


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