application/problem+json (RFC 9457). The same shape appears inside a job as Job.error.
| Member | What it is for |
|---|---|
code | Stable identifier. Branch on this, never on text. |
status | The HTTP status. In a job, the status the same failure would have had as a request. |
title, detail | For people. detail may name ids and never holds user text. |
hint | One sentence that names the next call or field. |
recommendation | What has to happen first: fix_request, wait, top_up, retry_later or contact_support. |
retry, retryable | How to send it again: same_key, new_key or none. retryable is true when retry is not none. |
errors | The failing fields as JSON Pointers, or query:, header: and path: names. Empty when no field is at fault. |
instance | urn:uuid:<request id>, the same id as X-Request-Id, or /v3/jobs/{id} in a job. Quote it to support. |
type | The link to this code’s page on this site. |
required_scopes or current_etag. Each page shows them in its example.
Spend, balance and errors has a handler to copy.
What recommendation asks for
fix_request: change the request or its inputs; sent unchanged it fails againwait: work in progress blocks the request; wait for it to end, then retrytop_up: the workspace owner adds minutes or changes the plan in the web appretry_later: a temporary failure; retry after a pause (afterRetry-Afterwhen given)contact_support: Rask has to act; contact support with theinstancevalue
How retry works
same_key: resend the same request with the same Idempotency-Key (afterRetry-Afterwhen given)new_key: start again with a new Idempotency-Key (a failed job)none: do not retry the request unchanged
Every code
| Code | Status | retry | recommendation | Where |
|---|---|---|---|---|
idempotency_key_required | 400 | none | fix_request | request |
invalid_cursor | 400 | none | fix_request | request |
token_in_query | 400 | none | fix_request | request |
authentication_required | 401 | none | fix_request | request |
invalid_token | 401 | none | fix_request | request |
token_expired | 401 | none | fix_request | request |
token_revoked | 401 | none | fix_request | request |
token_wrong_environment | 401 | none | fix_request | request |
insufficient_balance | 402 | none | top_up | request and job |
localization_stage_skipped | 402 | new_key | top_up | job |
account_disabled | 403 | none | contact_support | request |
demo_project_read_only | 403 | none | fix_request | request |
feature_not_in_plan | 403 | none | top_up | request |
forbidden | 403 | none | fix_request | request |
insufficient_scope | 403 | none | fix_request | request |
prepare_mode_not_enabled | 403 | none | fix_request | request |
token_spend_limit_exceeded | 403 | none | fix_request | request and job |
trial_project_dub_not_allowed | 403 | none | top_up | request |
voice_clone_limit_reached | 403 | none | fix_request | request |
workspace_access_suspended | 403 | none | top_up | request |
folder_not_found | 404 | none | fix_request | request |
glossary_not_found | 404 | none | fix_request | request |
job_not_found | 404 | none | fix_request | request |
media_not_found | 404 | none | fix_request | request |
not_found | 404 | none | fix_request | request |
project_not_found | 404 | none | fix_request | request |
segment_not_found | 404 | none | fix_request | request |
speaker_not_found | 404 | none | fix_request | request |
transcript_version_not_found | 404 | none | fix_request | request |
upload_not_found | 404 | none | fix_request | request |
voice_clone_not_found | 404 | none | fix_request | request |
method_not_allowed | 405 | none | fix_request | request |
cost_changed | 409 | none | fix_request | request and job |
dub_in_progress | 409 | same_key | wait | request |
dub_payment_required | 409 | none | fix_request | request |
dub_up_to_date | 409 | none | fix_request | request |
export_in_progress | 409 | same_key | wait | request |
folder_not_empty | 409 | none | fix_request | request |
free_lipsync_already_used | 409 | none | fix_request | request |
idempotency_key_in_use | 409 | same_key | wait | request |
job_already_finished | 409 | none | fix_request | request |
job_not_cancelable | 409 | none | fix_request | request |
job_not_resumable | 409 | none | fix_request | request |
lipsync_already_done | 409 | none | fix_request | request |
lipsync_in_progress | 409 | same_key | wait | request |
lipsync_rejected | 409 | new_key | fix_request | job |
media_in_use | 409 | same_key | wait | request |
media_not_ready | 409 | same_key | wait | request |
no_face_detected | 409 | none | fix_request | request and job |
no_previous_dub | 409 | none | fix_request | request |
onscreen_in_progress | 409 | same_key | wait | request |
onscreen_source_unavailable | 409 | new_key | fix_request | job |
project_busy | 409 | same_key | wait | request |
project_media_restoring | 409 | same_key | wait | request |
project_not_dubbed | 409 | none | fix_request | request |
project_not_ready | 409 | same_key | wait | request |
restore_in_progress | 409 | same_key | wait | request |
segment_busy | 409 | same_key | wait | request |
subtitle_import_in_progress | 409 | same_key | wait | request |
transcript_busy | 409 | same_key | wait | request |
transcript_not_ready | 409 | same_key | wait | request |
transcript_replaced | 409 | none | fix_request | request |
upload_incomplete | 409 | same_key | fix_request | request |
upload_not_pending | 409 | none | fix_request | request |
voice_clone_in_use | 409 | same_key | wait | request |
voice_clone_not_ready | 409 | same_key | wait | request |
voices_not_assigned | 409 | same_key | wait | request |
project_deleted | 410 | none | fix_request | job |
upload_expired | 410 | none | fix_request | request |
precondition_failed | 412 | none | fix_request | request |
media_too_large | 413 | none | fix_request | request and job |
media_too_long | 413 | none | fix_request | request |
request_too_large | 413 | none | fix_request | request |
unsupported_media_type | 415 | none | fix_request | request and job |
auto_dub_required | 422 | none | fix_request | request |
field_not_updatable | 422 | none | fix_request | request |
glossary_entries_invalid | 422 | none | fix_request | request |
glossary_language_mismatch | 422 | none | fix_request | request |
glossary_language_pair_not_supported | 422 | none | fix_request | request |
idempotency_key_reused | 422 | none | fix_request | request |
instant_clone_not_available | 422 | none | fix_request | request |
invalid_date_range | 422 | none | fix_request | request |
localization_combination_not_supported | 422 | none | fix_request | request and job |
media_corrupt | 422 | none | fix_request | job |
media_processing_failed | 422 | none | fix_request | request and job |
media_purpose_mismatch | 422 | none | fix_request | request |
no_audio_track | 422 | none | fix_request | job |
no_speech_detected | 422 | none | fix_request | job |
onscreen_language_not_supported | 422 | none | fix_request | request |
onscreen_video_too_long | 422 | none | fix_request | request |
segments_missing_translation | 422 | none | fix_request | request |
source_download_failed | 422 | new_key | fix_request | job |
source_language_not_supported | 422 | none | fix_request | request |
source_unavailable | 422 | none | fix_request | job |
source_url_not_allowed | 422 | none | fix_request | request |
speaker_has_no_speech | 422 | none | fix_request | request |
subtitles_invalid | 422 | none | fix_request | request |
target_language_not_supported | 422 | none | fix_request | request |
translation_batch_too_large | 422 | none | fix_request | request |
upload_size_mismatch | 422 | none | fix_request | request |
validation_failed | 422 | none | fix_request | request |
voice_not_in_pool | 422 | none | fix_request | request |
precondition_required | 428 | none | fix_request | request |
rate_limited | 429 | same_key | retry_later | request |
too_many_concurrent_jobs | 429 | same_key | wait | request |
too_many_waiters | 429 | same_key | retry_later | request |
audio_separation_failed | 500 | new_key | retry_later | job |
dub_failed | 500 | new_key | retry_later | job |
dub_merge_failed | 500 | new_key | retry_later | job |
dub_timeout | 500 | new_key | retry_later | job |
dub_voiceover_failed | 500 | new_key | retry_later | job |
export_failed | 500 | new_key | retry_later | job |
face_check_failed | 500 | new_key | retry_later | job |
internal_error | 500 | same_key | retry_later | request and job |
lipsync_failed | 500 | new_key | retry_later | job |
lipsync_timeout | 500 | new_key | retry_later | job |
localization_stage_failed | 500 | new_key | retry_later | job |
onscreen_charge_failed | 500 | new_key | retry_later | job |
onscreen_finalize_timeout | 500 | new_key | retry_later | job |
onscreen_invalid_result | 500 | new_key | retry_later | job |
onscreen_publish_failed | 500 | new_key | retry_later | job |
onscreen_runner_failed | 500 | new_key | retry_later | job |
onscreen_runner_lost | 500 | new_key | retry_later | job |
plan_configuration_error | 500 | none | contact_support | request |
project_processing_timeout | 500 | new_key | retry_later | job |
restore_failed | 500 | new_key | retry_later | job |
segment_generation_failed | 500 | new_key | retry_later | job |
segment_generation_timeout | 500 | new_key | retry_later | job |
speaker_detection_failed | 500 | new_key | retry_later | job |
subtitle_import_rolled_back | 500 | new_key | retry_later | job |
transcription_failed | 500 | new_key | retry_later | job |
translation_failed | 500 | new_key | retry_later | job |
translation_timeout | 500 | new_key | retry_later | job |
voice_clone_failed | 500 | new_key | retry_later | job |
voice_clone_timeout | 500 | new_key | retry_later | job |
api_unavailable | 503 | same_key | retry_later | request |
auth_unavailable | 503 | same_key | retry_later | request |
feature_temporarily_disabled | 503 | same_key | retry_later | request |
onscreen_provider_unavailable | 503 | new_key | retry_later | job |
onscreen_queue_timeout | 503 | new_key | retry_later | job |
spending_paused | 503 | same_key | retry_later | request |
temporarily_unavailable | 503 | same_key | retry_later | request |
translation_dispatch_failed | 503 | new_key | retry_later | job |