Error Codes
Complete reference of 44 error codes across 11 categories returned by the Studio Service.
Error response formatjson
{
"error": {
"code": "STUDIO_1000",
"message": "Image prompt is empty, exceeds limit, or contains forbidden content",
"http": 400
}
}Image GenerationSTUDIO_1000-1099
| Code | HTTP | Name | Description | Resolution |
|---|---|---|---|---|
STUDIO_1000 | 400 | INVALID_PROMPT | Image prompt is empty, exceeds limit, or contains forbidden content | Check prompt length (max 4000 chars) and content guidelines |
STUDIO_1001 | 400 | INVALID_DIMENSIONS | Requested width/height is outside supported range | Use standard sizes: 256, 512, 1024, or 1792 pixels |
STUDIO_1002 | 502 | IMAGE_PROVIDER_ERROR | Upstream image provider (DALL-E, Stable Diffusion, Ideogram) returned an error | Retry; provider failover may activate automatically |
STUDIO_1003 | 504 | IMAGE_GENERATION_TIMEOUT | Image generation timed out before completion | Retry with lower resolution or simpler prompt |
Video GenerationSTUDIO_1100-1199
| Code | HTTP | Name | Description | Resolution |
|---|---|---|---|---|
STUDIO_1100 | 400 | INVALID_VIDEO_PROMPT | Video prompt is empty or exceeds maximum length | Check prompt length and content guidelines |
STUDIO_1101 | 400 | INVALID_DURATION | Video duration is outside supported range | Use duration between 3 and 60 seconds |
STUDIO_1102 | 502 | VIDEO_PROVIDER_ERROR | Upstream video provider (Runway, Pika, HeyGen) returned an error | Retry; check provider status at GET /providers/health |
Audio & VoiceSTUDIO_1200-1299
| Code | HTTP | Name | Description | Resolution |
|---|---|---|---|---|
STUDIO_1200 | 400 | INVALID_TTS_INPUT | Text-to-speech input is empty or exceeds character limit | Limit text to 5000 characters per request |
STUDIO_1201 | 400 | UNSUPPORTED_LANGUAGE | Requested language is not supported for TTS | Use GET /audio/languages for supported languages |
STUDIO_1202 | 502 | AUDIO_PROVIDER_ERROR | Audio provider (ElevenLabs, AWS Polly) returned an error | Retry with a different voice or provider |
STUDIO_1203 | 404 | VOICE_MODEL_NOT_FOUND | Specified voice model ID does not exist | Use GET /voice-models to list available models |
Music GenerationSTUDIO_1300-1399
| Code | HTTP | Name | Description | Resolution |
|---|---|---|---|---|
STUDIO_1300 | 400 | INVALID_MUSIC_PROMPT | Music generation prompt is invalid or empty | Provide a descriptive prompt (genre, mood, instruments) |
STUDIO_1301 | 502 | MUSIC_PROVIDER_ERROR | Music provider (Suno AI) returned an error | Retry; Suno API may be temporarily unavailable |
Templates & ProjectsSTUDIO_1400-1499
| Code | HTTP | Name | Description | Resolution |
|---|---|---|---|---|
STUDIO_1400 | 404 | TEMPLATE_NOT_FOUND | Specified template does not exist or is not accessible | Verify template ID; check tenant permissions |
STUDIO_1401 | 404 | PROJECT_NOT_FOUND | Specified project does not exist or is not accessible | Verify project ID; check tenant permissions |
STUDIO_1402 | 409 | TEMPLATE_NAME_EXISTS | A template with this name already exists for this tenant | Use a different template name |
Render JobsSTUDIO_1500-1599
| Code | HTTP | Name | Description | Resolution |
|---|---|---|---|---|
STUDIO_1500 | 404 | JOB_NOT_FOUND | Render job does not exist | Verify job ID from the creation response |
STUDIO_1501 | 409 | JOB_ALREADY_COMPLETED | Cannot retry a job that completed successfully | Create a new job instead of retrying |
STUDIO_1502 | 429 | JOB_QUEUE_FULL | Render job queue is at capacity | Wait for existing jobs to complete, then retry |
Quota & CreditsSTUDIO_1600-1699
| Code | HTTP | Name | Description | Resolution |
|---|---|---|---|---|
STUDIO_1600 | 429 | RATE_LIMIT_EXCEEDED | Rate limit exceeded for this tenant or user | Implement exponential backoff; check Retry-After header |
STUDIO_1601 | 402 | INSUFFICIENT_CREDITS | Insufficient AI credits in wallet for this generation | Purchase additional credits or upgrade subscription tier |
STUDIO_1602 | 429 | QUOTA_EXCEEDED | Monthly generation quota exceeded for this subscription tier | Upgrade subscription tier or wait for quota reset |
STUDIO_1603 | 403 | FEATURE_DISABLED | This generation feature is disabled for the current tenant | Contact admin to enable the feature flag |
AuthenticationSTUDIO_1700-1799
| Code | HTTP | Name | Description | Resolution |
|---|---|---|---|---|
STUDIO_1700 | 401 | UNAUTHORIZED | Authentication required | Provide a valid JWT token in Authorization header |
STUDIO_1701 | 403 | FORBIDDEN | Insufficient permissions for this operation | Request required role from admin |
STUDIO_1702 | 401 | INVALID_TOKEN | Invalid or expired authentication token | Obtain a fresh JWT token via auth-svc |
STUDIO_1703 | 403 | TIER_INSUFFICIENT | Current subscription tier does not support this feature | Upgrade to Pro or Enterprise tier |
IntegrationsSTUDIO_1800-1899
| Code | HTTP | Name | Description | Resolution |
|---|---|---|---|---|
STUDIO_1800 | 502 | CANVA_API_ERROR | Canva API returned an error during import/export | Check Canva connection settings and retry |
STUDIO_1801 | 502 | GOOGLE_WORKSPACE_ERROR | Google Workspace export failed | Verify Google OAuth token is valid and retry |
STUDIO_1802 | 502 | SOCIAL_PUBLISH_ERROR | Social media publishing failed | Check platform credentials and content guidelines |
ValidationSTUDIO_1900-1999
| Code | HTTP | Name | Description | Resolution |
|---|---|---|---|---|
STUDIO_1900 | 400 | VALIDATION_FAILED | Request validation failed | Check request body against API docs |
STUDIO_1901 | 400 | MISSING_REQUIRED_FIELD | Required field is missing | Add the required field to the request body |
STUDIO_1902 | 413 | FILE_TOO_LARGE | Uploaded file exceeds maximum size limit | Reduce file size (max 50MB for images, 500MB for video) |
GeneralSTUDIO_2000-2099
| Code | HTTP | Name | Description | Resolution |
|---|---|---|---|---|
STUDIO_2000 | 500 | INTERNAL_SERVER_ERROR | Internal server error | Retry; if persistent, contact support with request_id |
STUDIO_2001 | 503 | SERVICE_UNAVAILABLE | Service temporarily unavailable | Retry with exponential backoff |
STUDIO_2002 | 500 | DATABASE_ERROR | Database operation failed | Retry; Aurora Serverless may be scaling up |