# Diagnosis
## Symptom
`create_index` returned, but upserts or queries fail, or `describe_index` shows the index not ready.
## Likely cause
Index creation submits a job to a queue; the call returns before the index can serve traffic. Control plane and data plane are separate, so the create call succeeding says nothing about readiness.
## Confirm it
Call `pc.describe_index(name)` in a loop and read `status.ready`. While false, the index is still provisioning. Log the state transitions so you can see stuck vs slow.
## Fix
Poll with backoff until ready, then proceed:
```
import time
while True:
desc = pc.describe_index(name)
if desc.status.ready:
break
time.sleep(5)
```
Put this wait in every script that creates an index, including tests and seed scripts.
## Verify the fix
After the loop exits, upsert one probe vector and query it back. If provisioning never completes (many minutes), check the console and contact support with the index name and timestamps.