{"record":{"id":"b17c9693423fdd5e","repo":"MemPalace/mempalace","slug":"pgvector-batch-cannot-mix-embedding-dimensions-so","errorCode":null,"errorMessage":"pgvector batch cannot mix embedding dimensions {sorted(dims)}","messagePattern":"pgvector batch cannot mix embedding dimensions (.+?)","errorType":"exception","errorClass":"DimensionMismatchError","httpStatus":null,"severity":"error","filePath":"mempalace/backends/pgvector.py","lineNumber":324,"sourceCode":"        raise ValueError(f\"embeddings length {len(embeddings)} does not match ids length {n}\")\n\n\ndef _as_vector_array(vector: list[float]) -> np.ndarray:\n    arr = np.asarray(vector, dtype=np.float32)\n    if arr.ndim != 1 or arr.size == 0:\n        raise ValueError(\"embedding must be a non-empty 1D vector\")\n    return arr\n\n\ndef _normalize_vectors(embeddings: list[list[float]]) -> tuple[list[list[float]], int]:\n    vectors = []\n    dims = set()\n    for embedding in embeddings:\n        arr = _as_vector_array(embedding)\n        vectors.append(arr.astype(float).tolist())\n        dims.add(int(arr.size))\n    if len(dims) > 1:\n        raise DimensionMismatchError(\n            f\"pgvector batch cannot mix embedding dimensions {sorted(dims)}\"\n        )\n    return vectors, dims.pop() if dims else 0\n\n\ndef _jsonable_metadata(meta: dict | None) -> dict:\n    try:\n        value = json.loads(json.dumps(meta or {}, ensure_ascii=False))\n    except (TypeError, ValueError):\n        value = {}\n    return value if isinstance(value, dict) else {}\n\n\ndef _vector_distance(query: np.ndarray, vector: list[float] | None) -> Optional[float]:\n    if vector is None:\n        return None\n    vec = _as_vector_array(vector)\n    if vec.size != query.size:","sourceCodeStart":306,"sourceCodeEnd":342,"githubUrl":"https://github.com/MemPalace/mempalace/blob/06cb6987f02610784fefbad4b2bd5d026d164ba6/mempalace/backends/pgvector.py#L306-L342","documentation":"Error \"pgvector batch cannot mix embedding dimensions {sorted(dims)}\" thrown in MemPalace/mempalace.","triggerScenarios":"Thrown at mempalace/backends/pgvector.py:324 when the library encounters an invalid state.","commonSituations":"Batch mixed vectors from two embedding models with different dimensions.","solutions":["Re-embed all rows with a single model so every vector has the same dimension"],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"06cb6987f02610784fefbad4b2bd5d026d164ba6","analyzedAt":"2026-08-15T03:03:36.213Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}