# Errors
HTTP status meanings for the Skybox AI API, what usually causes them, and what to do next.
# Status summary
| Status | Meaning | What to do |
|---|---|---|
| 400 | Edit or Image2Pano request is incomplete, or includes extra params | Send the required params for that operation, with a Model 4 style |
| 403 | Plan, model, or permission blocked | Check plan and style access; see Pricing and limits |
| 404 | Style or referenced skybox missing | Verify IDs from styles / history |
| 422 | Request body invalid | Fix prompt / hashes; validate JSON |
| 429 | Pending generation limit | Wait for completions; see limits |
| 500 / 503 | Service issue | Retry; set enhance_prompt to false if the enhancer is down |
Job status can still become error or abort after a 200 submit (including a max_wait timeout). Handle that on Pusher / webhook, not only on the HTTP response.
# In your app
Keep this light. Disable app guards when Generate is not public. Do not hang the UI.
- When Generate is public, limit how often your app will call it. A 429 means the queue is full. Spending continues when a generation finishes. App generation limits
- Send
max_waitonly if the user has a deadline (Fast 60s · Standard 120s · Enhanced 240s). Omit it if they can wait. Credits are refunded on timeout. - 403 / 422: do not retry the same body. 429: wait for completions. 500 / 503: backoff; set
enhance_prompt: falseif the enhancer is down.
Pattern: App generation limits
# Detailed responses
| Code | Message | Cause | Resolution |
|---|---|---|---|
| 403 | You don't have an active subscription | Inactive or expired subscription | Renew or choose a plan at skybox.blockadelabs.com/plans (opens new window) |
| 403 | Access denied | API key doesn't have access to the model or style, or the plan does not include Model 4 (Essential and Free are blocked; Standard and Business are allowed) | Upgrade to Standard or Business for Model 4, or use a Model 3 style. Otherwise contact Support |
| 403 | Negative text is disabled when Strict Prompt is enabled. You can disable this in your Profile settings. | Strict prompt enabled in profile | Disable Strict Search in profile, or omit negative_text |
| 403 | You do not have permission for this action | Plan lacks the required permission, including edit | Upgrade plan or contact Support |
| 400 | You need to send all required edit params {params} | Incomplete edit request (all-or-nothing) | Send all required edit params together; negative_text is optional |
| 400 | Unexpected parameter(s) for edit: {params}. Allowed edit params {params} | Extra params were sent on an edit request (for example variant_id) | Only send allowed edit params |
| 400 | Edit requires a Model 4 skybox_style_id. | Non–Model 4 style on edit | Use a Model 4 skybox_style_id from Get Skybox Styles |
| 400 | You need to send all required image to pano params: {params} | Incomplete Image2Pano request (all-or-nothing) | Send all required Image2Pano params together; negative_text is optional |
| 400 | Unexpected parameter(s) for image to pano: {params}. Allowed image to pano params: {params} | Extra params were sent on an Image2Pano request (for example variant_id) | Only send allowed Image2Pano params |
| 400 | Image to pano requires a Model 4 skybox_style_id. | Non–Model 4 style on Image2Pano | Use a Model 4 skybox_style_id from Get Skybox Styles |
| 404 | Skybox does not exist or is not complete. | Edit source skybox id is invalid or not complete | Use a completed skybox id |
| 404 | Skybox with the specified image to pano init image hash was not found / Image to pano init image for the specified skybox was not found. | image_to_pano_init_image_hash does not match a skybox that has an init image | Use a hash from a prior Image2Pano generation that included an init image |
| 404 | Skybox style does not exist | Wrong style ID | Use styles from /api/v1/skybox/styles |
| 404 | Could not find any completed Skybox generations in this collection. | remix_collection_id has no complete skyboxes | Use a valid collection with at least one complete skybox |
| 404 | Skybox with the specified init image hash was not found / Init image for the specified skybox was not found. | Bad init_image_hash | Use a skybox that was created with an init image |
| 404 | Skybox with the specified control image hash was not found / Control image for the specified skybox was not found. | Bad control_image_hash | Use a skybox that was created with a control image |
| 422 | No prompts submitted | Missing prompt, or invalid JSON | Send prompt; validate JSON (no trailing commas) |
| 422 | Wrong hash for init image. Check your init image hash. | Bad init image obfuscated_id | Use the correct hash from a skybox created with an init image |
| 422 | Wrong hash for control image. Check your control image hash. | Bad control image obfuscated_id | Use the correct hash from a skybox created with a control image |
| 422 | Wrong hash for image to pano init image. Check your image_to_pano_init_image_hash. | image_to_pano_init_image_hash is not a valid obfuscated_id | Use the correct obfuscated_id from a prior Image2Pano generation |
| 429 | You have reached your pending generation limit of {N}. Please wait for some generations to complete before submitting more. | Too many pending generations | Wait for completions; see Pricing and limits |
| 500 | Error submitting imagination | Backend service issue | Retry; contact Support if it persists |
| 503 | Prompt enhancer service is currently not operational. Please try later. | Prompt enhancer provider down | Retry later or set enhance_prompt to false |
See Support when you need help.