What it means
same key, different request fingerprint.
How to handle it
Use the original request for meta.original_job_id, or generate a new idempotency key for different content.
Wire contract
| Code | idempotency_key_reused |
|---|---|
| Class | conflict |
| HTTP status | 409 |
| Meta keys | original_job_id |
| Raised | Yes |
The response uses the standard {"error": {…}} envelope. Branch on error.code, not the human-readable message. Preserve request_id when reporting a failure.