MemPalace/mempalace · error · DimensionMismatchError

pgvector collection {self._collection_name!r} expects embedd

Error message

pgvector collection {self._collection_name!r} expects embedding dimension {existing_dim}, got {dimension}

What it means

Error "pgvector collection {self._collection_name!r} expects embedding dimension {existing_dim}, got {dimension}" thrown in MemPalace/mempalace.

Source

Thrown at mempalace/backends/pgvector.py:882

    def _ensure_table(self, dimension: int) -> None:
        if dimension <= 0:
            raise ValueError("embedding dimension must be positive")
        with self._lock:
            self._ensure_open()
            if self._known_dimension is not None:
                if self._known_dimension != dimension:
                    raise DimensionMismatchError(
                        f"pgvector collection {self._collection_name!r} expects "
                        f"embedding dimension {self._known_dimension}, got {dimension}"
                    )
                return
            if not self._table_exists():
                self._client.create_table(self._table, dimension)
                self._known_dimension = dimension
                return
            existing_dim = self._client.table_dimension(self._table)
            if existing_dim is not None and existing_dim != dimension:
                raise DimensionMismatchError(
                    f"pgvector collection {self._collection_name!r} expects "
                    f"embedding dimension {existing_dim}, got {dimension}"
                )
            self._known_dimension = existing_dim or dimension

    def _scroll(
        self,
        *,
        where=None,
        with_embedding=False,
        with_document=True,
        limit=None,
        offset=None,
    ) -> list[dict]:
        self._ensure_open()
        if not self._table_exists():
            if self._marker_exists():
                raise CollectionNotInitializedError(self._collection_name)

View on GitHub (pinned to 06cb6987f0)

Solutions

  1. Re-embed with the matching model or drop and recreate the table with the new dimension

When it happens

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

Common situations: Existing pgvector table dimension conflicts with the current embedder's output.


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