Upstream error
upstream_error
The API reached the generation service and the generation service could not answer. The failure sits on the VoiceLabs side of that boundary, not in your request.
Why it happens
The GPU engine refused, timed out, or was mid-restart. An internal entitlement token rejected upstream also lands here — deliberately reported as our fault rather than dressed up as your credential failing, because that is what it is.
How to fix it
Retry with backoff. If generations keep failing for more than a few minutes, send support the instance path and the time — there is nothing to change in the request itself.
Safe to retry?
Yes, with backoff. Carry an Idempotency-Key on writes so a retry after a lost response cannot generate twice.
What it looks like on the wire
{
"type": "https://voicelabs.now/errors/upstream_error",
"title": "Upstream error",
"status": 502,
"detail": "A human-readable explanation of this particular occurrence.",
"instance": "/v1/speech",
"code": "upstream_error"
}
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.