# 409: the index is already there
## The error
`409 Already Exists: You are trying to create a resource that already exists.`
## Cause
Two deploys raced, a retry re-ran after the first create succeeded, or a previous run created it and then failed later. The name is taken.
## Fix
Make creation idempotent. The check-then-create pattern (`if name not in list: create`) still races; prefer:
```
try:
pc.create_index(name=..., dimension=..., metric=..., spec=...)
except PineconeException as e:
if getattr(e, "status", None) != 409:
raise
```
Then verify the existing index matches what you wanted: `describe_index` and compare dimension, metric, and spec. A 409 on a name with the wrong dimension is not success; it is a collision you must resolve by renaming.
## Trap
Catching 409 and assuming the index is yours and correct. In shared projects, someone else's index can own the name. Always verify dimension and metric after catching 409.