HTTP 503Server-side — retry

Service unavailable

service_unavailable

VoiceLabs cannot serve the request right now and knows it. This is reported instead of a guess: when the credential store cannot be read, the honest answer is “we cannot tell yet”, not “your key is bad” — which would send you rotating a key that was fine.

Why it happens

A dependency was briefly unreachable — the credential store, or the idempotency ledger. When an idempotent write cannot be recorded, the request is refused rather than executed without the guarantee you asked for, so a retry can never double-charge.

How to fix it

Honour Retry-After (usually a few seconds) and send the same request again. Nothing was executed, so there is nothing to reconcile.

Safe to retry?

Yes, and it is safe to send as-is.

What it looks like on the wire

{
  "type": "https://voicelabs.now/errors/service_unavailable",
  "title": "Service unavailable",
  "status": 503,
  "detail": "A human-readable explanation of this particular occurrence.",
  "instance": "/v1/speech",
  "code": "service_unavailable"
}

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