Inputs
1. The shape you asked for is not one the model accepts
Models do not share a vocabulary for size. Some accept a resolution band, some an aspect ratio, some explicit dimensions — and a combination that is valid on one model is meaningless on another. This is the most common silent failure, because it can also succeed and hand back a correctly-generated image in the wrong proportions. If the output is the right subject at the wrong shape, this is your category, and the fix is to set the shape explicitly rather than to change the prompt.
2. A required input is missing
Image-to-image and image-to-video templates need a source image, and some need more than one. A template that appears to do nothing when you press generate is usually waiting for an upload slot that has not been filled. This one costs nothing but time, and it is worth checking before assuming anything is broken.
3. The balance is short for the settings you chose
Cost scales with duration and resolution, so the same template can be affordable at one setting and out of reach at another. A generation that stops before starting, with nothing produced, is usually this. Lowering duration first is the fastest way to bring a template back into range, and it is also the setting most likely to improve the result.
4. The model itself is no longer available
Hosted models are retired by their providers, sometimes without notice, and a model that worked last month can stop existing. We probe our catalogue for this and hide endpoints that have gone, but there is always a window between a provider closing a route and us noticing. If a specific template fails repeatedly while others succeed, this is the likely cause — switching to another template in the same family is the immediate workaround.
Steps
- Check whether anything was produced. Nothing at all points to inputs, balance or availability; a wrong-looking result points to shape or prompt.
- Confirm every upload slot the template asks for is filled.
- Lower the duration or resolution and retry once — this covers both the balance case and part of the shape case.
- Try a different template using a different model family. If that succeeds, the first model is the problem, not your request.
- If the same template fails at every setting while others work, treat it as unavailable and move on rather than retrying.
- Only rewrite the prompt once the four checks above have been ruled out.
Parameters and controls
5. The request was refused on content grounds
Every hosted model applies its own filters, and they differ from each other and from ours. A refusal is not the same as an error: it means the request was understood and declined. Rewording rarely helps if the subject itself is out of scope, and it is worth reading the response rather than assuming a technical fault — the two look similar from the outside and need opposite responses.
The sixth case: it succeeded, and it is wrong
This is the one people do not count as a failure, and it is the most expensive category by volume because it consumes credits every time. A generation that returns a clean, well-rendered result that is not what you asked for is almost never a model fault — it is an instruction the model never received. The usual culprits are an unstated shape, a motion described as an adjective rather than a movement, or an image-to-video prompt that re-describes the subject and so invites it to be reinterpreted. Before assuming the model is weak, check what the prompt actually specified rather than what you meant by it.
Why retrying the same request sometimes works
Identical requests do not always produce identical results, so a retry occasionally succeeds where the first attempt did not. That is worth knowing, and it is also a trap: if the cause is a missing input, an unavailable model or a setting that is out of range, retrying is guaranteed to fail again and will keep costing you. A single retry is a reasonable test of whether you hit transient noise. A third attempt with nothing changed is not a strategy — by then, the answer is that something in the request needs to be different.
Deciding whether it is you or us
A quick way to localise a problem: run a different template that uses a different model family, with the simplest possible settings. If that works, the issue is specific to the first template or model, and the fastest fix is to use a different one rather than to keep debugging. If that also fails, the problem is more likely in the shared path — inputs, balance, or the request itself — and the checks below will find it faster than any amount of prompt rewriting.