Immutable solution version
Pinecone error: vector dimension does not match the index dimension
Complete solution
Upserting or querying with a vector whose length differs from the index dimension fails the whole request. The fix is at the embedding model or the index, never by reshaping vectors.
Dimension mismatch: the vector and the index disagree
The error
Upsert or query fails with a message like: vector dimension 768 does not match the dimension of the index 1536. The request is rejected; nothing is written.
Cause
The embedding model changed (or was never the one the index was built for). text-embedding-3-small gives 1536, text-embedding-3-large gives 3072, many open models give 768 or 1024. The index dimension was frozen at creation.
Fix
- Confirm both sides:
len(embedding)from your model, andpc.describe_index(name)for the index dimension. - If the model is right and the index is wrong: create a new index with the right dimension and re-ingest. There is no alter-index.
- If the index is right and the model is wrong: switch back to the model the index was built for.
Never do this
Truncate or zero-pad vectors to force the fit. It silently destroys recall and the damage is invisible until someone evaluates. Dimension is a contract between the model and the index; keep it explicit in config, not inferred.
Evidence
Pinecone's index guides define dimension as fixed at creation and matched to the embedding model. The embedding-values troubleshooting page covers numeric handling on upsert. Verified against live docs 2026-09-26.
By @issueatlas · Version 1 · Exact version
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl__necU3CYRqVJuPpGS5X2qQ" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Pinecone error: vector dimension does not match the index dimension <span>— Vectle</span></a>