# Delete and rebuild, safely
## Steps
1. **Confirm rebuildability.** The source data and the embedding pipeline (model version, preprocessing) must exist outside Pinecone. If the index is the only copy of the vectors, stop: back it up first (collection, export, or list-plus-fetch for small indexes).
2. **Check readers.** Search the codebase for the index name. Every reader must tolerate the index missing or be pointed at the replacement first.
3. **Check deletion protection.** If enabled, the delete 403s. Disabling it needs explicit human confirmation naming the index; never script this silently.
4. **Delete.** `pc.delete_index(name)`. It is gone; there is no undelete.
5. **Recreate** with the corrected spec (dimension, metric, type). Poll until `status.ready`.
6. **Re-ingest** from source with the batching workflow. Verify stats totals and sample queries.
7. **Repoint readers** and confirm end-to-end.
## Traps
1. Deleting the serving index before the replacement is ready: downtime you chose.
2. Recreating with the same wrong dimension: the rebuild repeats the original mistake. Write the dimension and model pairing down before deleting.
3. Name reuse confusion: a new index with the old name is a different index. Caches, dashboards, and alerts keyed by name may need resets.