sessionId is returned; the corresponding session data lives in Redis with a 1-hour TTL (modules/voiceFactory.js:42).VOICE_DESIGN_SESSION_EXPIRED.sessionId cannot be confirmed twice (the second time is likewise VOICE_DESIGN_SESSION_EXPIRED).modules/voiceFactory.js:44-45).BILLING_DESIGN_QUOTA_EXCEEDED,code is the parent code BILLING_QUOTA_EXCEEDED (modules/errorCodes.js:300).RATE_LIMIT_CONCURRENT returned (modules/voiceFactory.js:86-128).instruct and the model-produced text go through content-safety checks (admin / enterprise roles skip).SAFETY_CONTENT_REJECTED; failure of the check service itself returns SAFETY_CHECK_FAILED./api/tts/voice/... compatibility alias.{ status, code, message, requestId? }. code is always the parent code — sub codes only change message and never appear in the body. requestId is present only on reportable-tier errors, so use the X-Vocu-App-Request-Id response header when troubleshooting (it is written unconditionally on every response). See the "Errors" document for the full code reference.