A failed or stuck generation: what happens to your money
The price of a generation leaves your balance the moment you send it, before the model starts working. This guide explains what happens to those credits when something goes wrong: when a generation fails, when the model blocks it and when it gets stuck and never finishes, and also when there is no refund.
On this page
The short answer
A generation that fails gives all its credits back to your balance, automatically and with nothing to ask for. A generation that has not finished within two hours is checked one last time: if the result is ready it is saved to your library, and if not, the generation is closed and its credits come back. Every refund is recorded in your activity, so you can see exactly what left and what came back.
For example, an 8 second clip at 720p in Veo 3.1 Lite costs ₪0.707.03 crVeo 3.1 Lite, 720p · 8s · with sound right now. If that generation fails, exactly that amount comes back to your balance.
Why the price is taken when you send
The charge happens the moment you send, not at the end, so the price you saw before the generation is exactly what leaves your balance. The price list moves with the daily dollar rate, but a generation already sent keeps the price it was sent at, and if it fails, its refund is exactly that amount.
Because of this, a generation already sent never gets a second charge, even when rendering takes a long time, and no generation ever runs without its payment on record.
Where your credits are at every stage
Every generation goes through a few stages, and the Jobs page shows which one it is in at any moment:
- Queued. The price shown before the generation leaves your balance the moment you send it. The charge and the generation are recorded together, so there is never a generation without a payment or a payment without a generation
- Rendering. The model is working on it. You can leave the page meanwhile, and the result will wait in your library
- Ready. The result is first saved in our storage, and only then is the generation marked ready and shown in your library
- Refunded. The generation failed, and all its credits went back to your balance
Every movement in your balance is recorded exactly once, with its date and amount, so you can follow every credit that went out and came in.
What counts as a failed generation
A generation counts as failed whenever there is no result that can be saved:
- The model returned an error and made nothing
- The model blocked the request because of its maker’s content filter. The Veo 3.1 documentation, for example, says that some generations are blocked by safety filters
- The model finished without returning a file
- The result could not be saved to our storage even after several attempts
- The generation did not finish within two hours, as explained below
When a generation fails, the system may try the same model at another provider, at no extra cost. If there is no such option, or that attempt fails too, the generation is closed and all its credits return to your balance.
A stuck generation: the two hour rule
Sometimes a generation stays in rendering longer than expected. So that your credits never stay stuck, any generation that has not finished two hours after you sent it is checked one last time:
- If the result is already ready, it is saved to your library like any generation that succeeded
- If it is still not ready, or it failed, the generation is closed and all its credits return to your balance
The check happens on its own: when you look at the generation on the website, through the API or through MCP, and in any case in an automatic check that runs in the background. You do not need to ask for it, and you do not even need to visit the site for it to happen.
Where you see the refund
- On the Jobs page. The generation is marked "Refunded", with how many credits went back to your balance
- On the credits page. Your activity gets a "Refund" line with the amount and the balance right after it
- In the API and MCP. The generation returns status failed together with refunded: true, so a program or an AI agent knows the credits came back
- A refund by the team. A manual refund on a generation shows the same way: the generation is marked "Refunded", and your activity gets a "Refund" line
When there is no refund
Automatic refunds are for failures, not for taste. A generation that finished and was saved, but did not turn out the way you hoped, is not refunded automatically, because the generation itself was carried out. AI results can differ from what you expected, so it is worth testing an idea first in a short or budget version.
A generation cannot be cancelled once you send it: it either finishes and is saved, or fails and returns its credits. So it is worth a last look at the settings and the price just before sending.
There are also cases where no charge happens in the first place:
- Settings that cannot be generated. The price is computed before any charge, and a combination of settings no provider can serve is refused up front, with nothing charged
- A balance that is too low. A generation that costs more than your balance is not sent
- A price that went up just before sending. Nothing is sent until you confirm the new price
- A price cap in the API and MCP. A generation that costs more than max_credits is not sent, and nothing is charged
- Unpaid storage fees. When your balance cannot cover the storage fee, new generations are blocked until you top up or delete files
Cancelling a credit top-up
A refund for a failed generation returns to your balance as credits. Cancelling a credit top-up is a different matter: under the Israeli Consumer Protection Law you can cancel a top-up within 14 days of the payment, for the credits from that top-up that have not been used yet, and the refund goes to the credit card used to pay. All the details, including the cancellation fee the law allows, are on the cancellation and refunds page.
How to make failures less likely
- Stay within what the model accepts. The studio shows each model only the options it can generate, and prices only a combination that can be served
- Files up to 4 MB. A start image, sample images, video or audio you upload must be up to 4 MB per file
- Rephrase after a block. Nobody can know in advance everything the makers’ content filters block. A blocked request gets a full refund, and you can try again with different wording
- Test small. A short clip, a low resolution or a budget version of the model costs less, so a result that does not fit costs less too
- A price cap in automations. In the API and MCP, set max_credits on every generation, so a request that costs more than expected is never sent
That way every credit that leaves your balance buys a result, and every generation that did not succeed comes back to you in full.
Questions and answers
Do I pay for a generation that failed?
No. A generation that fails gives all its credits back to your balance, automatically and with nothing to ask for, and the refund shows in your activity
What happens if a generation gets stuck and never finishes?
A generation that has not finished within two hours of sending is checked one last time. If the result is ready it is saved to your library, and if not, the generation is closed and all its credits return to your balance
How soon do the credits come back?
The moment the generation is closed as failed, in the same step. A stuck generation is closed two hours after sending, the next time the system checks it
Can I get a refund for a result I did not like?
Not automatically. Automatic refunds are for generations that failed, and a generation that finished successfully was carried out. To save, test an idea first in a short clip, at a low resolution or in a budget version of the model
Does the refund go back to my credit card?
A refund for a failed generation goes back to your balance as credits. Cancelling a credit top-up within 14 days, under the Israeli Consumer Protection Law, returns money to your card for the credits from that top-up that have not been used yet. The details are on the cancellation and refunds page
Why was my request blocked?
Requests are blocked by the content filters of the model makers, and each maker decides what to block. Nobody can know every case in advance, but a blocked request gets a full refund, and you can try again with different wording