HTTP 409Client-side — change the request

Idempotency key in progress

idempotency_key_in_progress

A request carrying this exact Idempotency-Key is still running. Starting a second one is precisely what the key exists to prevent, so VoiceLabs refuses and tells you to come back rather than generating twice.

Why it happens

A client retried before the first attempt finished: an aggressive timeout, a retry policy with no backoff, or two workers that picked up the same job.

How to fix it

Wait, then send the SAME request with the SAME key. The response carries a Retry-After (a couple of seconds). Once the original lands, the replay returns its response byte-for-byte instead of doing the work again.

Safe to retry?

Yes, and it is safe — that is the whole point of the key. Honour Retry-After.

What it looks like on the wire

{
  "type": "https://voicelabs.now/errors/idempotency_key_in_progress",
  "title": "Idempotency key in progress",
  "status": 409,
  "detail": "A human-readable explanation of this particular occurrence.",
  "instance": "/v1/speech",
  "code": "idempotency_key_in_progress"
}

Branch on code, never on status or on the prose in detail: two different problems can share a status, and detail is written for humans and may be reworded. Problems a settings page can resolve also carry settings_url, and a scope failure carries required_scope.

Every VoiceLabs API error is an RFC 9457 problem document with a stable code.

See every error code