Every refusal is one line that starts with a bracketed code, then the figure, then what to do. quote_film reports the codes that would stop start_film as blockers without failing. A stage that fails during a run is not a tool error: the status shows phase failed with the error and the refund — and the finished film beside them when an earlier cut landed. next_action reads get_film then, unless the run was cut short by a restart and can simply resume.
- [insufficient_credits]
- The balance is short of the price; the message names the shortfall. Nothing was charged, unless
generate_stage says it stopped partway, when the submissions it names were charged. Tell the user; credits are bought on the website. - [quote_changed]
approved_credits is below the price computed now; for start_film, below the estimate computed now. Show the user the new figure, ask again, and call with it.- [daily_cap_reached]
- This account's daily limit for AI apps cannot hold this, or spending from AI apps is turned off on this account. When the limit is above 0, the message names it and what is left. Tell the user; it resets at 00:00 UTC. Only they can change the limit, on their profile, never in chat.
- [rate_limited]
- Too many calls for this account. Wait the
retry_after_seconds it names. - [too_many_runs]
- Two films are already being made on this account. Wait for one to finish, or
stop_film. - [already_running]
- A quote blocker: this film is already being made. Poll
get_film_status; do not call start_film. - [not_found]
- No such project, job, character or share on this account. Other accounts' ids read the same way. Check the id with
list_projects or get_project. - [invalid_input]
- An argument is wrong; the message names it. Fix that argument and call again.
- [empty_brief]
- There is no brief to make the film from. Pass
brief to start_film or update_project_settings. - [no_storyboard]
generate_stage needs a storyboard first. Run write_storyboard, or start_film for the whole film.- [missing_prerequisite]
- A stage needs an earlier one: a clip needs its keyframe, the final cut needs a visual for every scene. Generate what it names first.
- [locked]
- A setting can no longer change; the message says what it is locked to. Keep it, or start a new project.
- [conflict]
- The request clashes with the current state, such as the same request still being processed,
cancel_job on a job that has already finished, generate_stage on a film start_film is making, or a charge refused because the app was disconnected. Read the message; poll get_film_status rather than repeating the call. - [not_finished]
- There is no finished cut yet. Poll
get_film_status until the phase is done. - [feature_unavailable]
- This server does not offer that feature, such as video or dialogue. Check
get_account and choose another option. - [read_only_project]
- A shared showcase project cannot be changed. Create a project of your own.
- [confirmation_required]
share_film was called without confirm_public=true. Tell the user the link is permanent; pass true only if they agree.- [upstream_failed]
- A provider failed the request. Nothing was charged, unless
generate_stage says it stopped partway, when the submissions it names were charged. Try again later. - [internal]
- Something failed on the server's side. Nothing more was charged than the status shows. Try again in a minute.