Errors

Every error code the API returns, and what to do about it.

Errors always have the same shape, with an HTTP status that fits:

{
  "error": {
    "code": "not_enough_credits",
    "message": "This needs 25 credits; you have 10.",
    "docs": "https://getuser.app/docs/errors#not_enough_credits"
  }
}
  • code is stable: switch on it.
  • message is English, for people; it may change.
  • invalid_input also has issues[] (field and problem); setup_incomplete has detail.gate (videos or slideshows) and detail.missing.

All codes

CodeHTTPExample messageWhat to do
invalid_input400The request is not valid. See issues.Read error.issues[]: each names the field and what is wrong with it.
invalid_key401The API key is missing, wrong or revoked. Make a new one at getuser.app/settings/api.Send Authorization: Bearer gu_…. Make a new key in Settings › Connect to AI.
not_enough_credits402This needs 25 credits; you have 10.Wait for the next credits, make fewer, or upgrade. Nothing was charged.
suspended403This account is paused. Email support@getuser.app if you think that is a mistake.Email support@getuser.app.
terms_not_accepted403The Terms changed. Open getuser.app once and accept them, then try again.Sign in to getuser.app in a browser and accept the new Terms, then retry.
not_found404Not found in this workspace.Check the id. Ids from another workspace are never visible.
already_queued409This video is already queued or rendering.Poll GET /v1/videos/{id} instead of queueing again.
already_rendered409This video is already done.Read its download_url with GET /v1/videos/{id}.
already_scheduled409This video is already scheduled.Read the posting plan with GET /v1/plan.
idempotency_conflict409This Idempotency-Key was used with a different request body.Use a new key for a new request; reuse a key only to retry the same body.
request_in_progress409A request with this Idempotency-Key is still running.Wait a few seconds, then retry with the same key: it answers the first request’s result.
too_large413The file is larger than your plan allows.Trim or compress the file, or upgrade.
setup_incomplete422Finish setting up at getuser.app first. Videos need your app, 5 demos and your own reaction. Missing: demos.detail.gate says which: videos need the app, 5 demos and the founder’s own reaction; slideshows need the app and 5 images. The founder adds what detail.missing lists in the app.
storage_full422Your storage is full. Delete videos you no longer need at getuser.app/videos, or upgrade.The founder deletes old videos at getuser.app/videos (the API cannot delete), or upgrades.
queue_full42240 videos are already waiting. Let some finish first.Let some finish, then queue more.
ai_paused422AI writing is paused for a moment. Try again later.Retry later.
ai_unavailable422The AI writer did not answer. No credits were charged; try again later.Retry later.
rerenders_used422That's all the free re-renders this month.Make a new video instead.
uploads_used422That's all the uploads your plan allows for now.Reuse uploads you have, wait, or upgrade.
posts_used422That's all the posts your plan allows this month.Wait for next month or upgrade.
ai_hour_used422That is a lot of AI writes this hour. Try again in a bit.Retry in a while.
ai_day_used422That is all the AI writes for today. Try again tomorrow.Retry tomorrow.
files_gone422The files of this video are gone. Render it again first.Render it again first.
not_failed422Only a failed post can be tried again.Check the status before retrying.
account_not_connected422That account is not connected.The founder connects the TikTok or Instagram account in the app.
text_too_long422The text is too long for the screen.Shorten the hook or ending text named in detail.field.
not_ready422An upload it uses is still processing or was deleted.Poll GET /v1/assets/{id} until status is ready.
no_demo422Upload a demo of your app first.Upload a demo (see Uploading footage).
no_personas422No persona fits these settings.Widen persona_ids or leave it out.
no_lines422No hook line fits these settings.Use lines: 'all', or write lines with POST /v1/ai/lines.
too_many_keys422A workspace can have 10 live keys. Revoke one first.Revoke a key you no longer use.
rate_limited429Too many requests. Wait for Retry-After seconds.Wait for the Retry-After seconds, then retry.
internal500Something went wrong on our side. Try again.Retry with the same Idempotency-Key.
unavailable503Getuser is paused for maintenance. Try again in a few minutes.Retry in a few minutes.

Retrying

Retry 429, 500 and 503, with the same Idempotency-Key and a growing wait. Do not retry 4xx business refusals unchanged: they answer the same until something changes.

On this page