Credits
What a failed run costs
Nothing. Here is the mechanism that makes that true, and the one case worth reporting.
Nothing. A run that fails costs you no credits, and the reason is the order the three steps happen in. ## Reserve, then settle 1. **Reserve.** Pressing Run takes the credits off your balance and holds them against this specific run. They are held, not spent. 2. **Settle.** The result arriving turns the hold into a charge. 3. **Release.** The run failing turns the hold back into balance. Pressing Run never creates a charge, only a hold. Delivery is what turns it into a charge, so a failure has nothing to reverse. ## The backstop The release usually happens within a second of the failure. When it does not, because a browser closed or a call did not go through, a sweep runs every ten minutes across both providers and reconciles anything left holding after an hour. That sweep reads what actually happened before it acts. A run that genuinely succeeded gets charged rather than refunded, so a lost confirmation does not turn into free work, and a run that genuinely failed gets released. The worst case is roughly an hour with credits held, rather than credits lost. :::note[This is why the balance dips during a long render] The hold is on for the whole run. A three-minute video render shows the credits gone for three minutes and then either charges them or hands them back. Nothing is wrong during that window. ::: ## What counts as a failure Every one of these releases the hold: - A provider erroring or timing out - A model rejecting the input - A provider outage - A run that never returns ## The one case to report If your balance moved and nothing arrived on the canvas, say so. That specific outcome, charged with no asset, has its own code in the failure catalog, precisely because it is the one thing a user cannot diagnose from the outside. <kbd>Ctrl</kbd> <kbd>Shift</kbd> <kbd>B</kbd> opens the bug reporter from anywhere and screenshots before it opens the form. :::caution[Do not assume it corrected itself] A stuck hold and a wrong charge look identical from the outside for the first hour. If you are still short after that, the sweep has already run and decided, which means it saw something it read as a success. That is worth a report. :::Nothing.
A run that fails costs you no credits, and the reason is the order the three steps happen in.
Reserve, then settle
Section titled “Reserve, then settle”- Reserve. Pressing Run takes the credits off your balance and holds them against this specific run. They are held, not spent.
- Settle. The result arriving turns the hold into a charge.
- Release. The run failing turns the hold back into balance.
Pressing Run never creates a charge, only a hold. Delivery is what turns it into a charge, so a failure has nothing to reverse.
The backstop
Section titled “The backstop”The release usually happens within a second of the failure. When it does not, because a browser closed or a call did not go through, a sweep runs every ten minutes across both providers and reconciles anything left holding after an hour.
That sweep reads what actually happened before it acts. A run that genuinely succeeded gets charged rather than refunded, so a lost confirmation does not turn into free work, and a run that genuinely failed gets released. The worst case is roughly an hour with credits held, rather than credits lost.
What counts as a failure
Section titled “What counts as a failure”Every one of these releases the hold:
- A provider erroring or timing out
- A model rejecting the input
- A provider outage
- A run that never returns
The one case to report
Section titled “The one case to report”If your balance moved and nothing arrived on the canvas, say so.
That specific outcome, charged with no asset, has its own code in the failure catalog, precisely because it is the one thing a user cannot diagnose from the outside.
Ctrl Shift B opens the bug reporter from anywhere and screenshots before it opens the form.