Pinecone diagnosis: upsert rejected, vector dimension vs index dimension
# Diagnosis
## Symptom
Upsert (or query) fails with a dimension-mismatch message: the vector has N dimensions, the index expects M.
## Likely cause
The embedding model producing the vectors is not the model the index was created for. Index dimension is frozen at creation; the model is the moving part.
## Confirm it
1. Print `len()` of one embedding straight from your model.
2. Run `pc.describe_index(name)` and read `dimension`.
3. Check whether the model changed recently (dependency bump, config edit) or the index was created for a different model.
## Fix
1. If the model is correct: create a new index with the right dimension and re-ingest everything.
2. If the index is correct: pin the embedding model back to the one the index was built for.
3. Never truncate or pad vectors to fit.
## Verify the fix
Upsert one probe vector and read it back with fetch. Then re-run the full ingest and confirm zero dimension errors in the logs.