Since 23 September, cancelling a generation really cancels it. A render that has not reached the model provider yet is refunded in full. Once the provider has it, what you get back depends on the model, because NOLGIA can only stop what the provider lets it stop. Whatever happens, a cancelled render is never added to your library, and the job tells you what happened to your credits.
What you can cancel, and where
You can cancel any generation that is still queued or running. In the app, look for Cancel next to it: in the queue under the composer, in the in progress panel, under Concurrent generations on your dashboard, in a set's details, on a preset's result and on a model's page.
Cancel asks first. Cancel generation stops it, Keep it running leaves it alone. The job then shows as cancelled, with a sentence saying what the provider did and what happened to your credits. If credits come back, your balance updates straight away.
Watch for this:Closing the page is not a cancel. Leaving the page only stops you watching. The render carries on and is billed as normal. The same goes for pressing Ctrl-C while the CLI waits.
What you get back
| Where the render was | What happens to your credits |
|---|---|
| Still with NOLGIA: queued, or waiting for a free slot at the provider | Refunded in full, straight away. Nothing was sent. |
| In the provider's own queue, on a model whose provider can drop queued work | Refunded in full once the provider confirms it stopped |
| Being rendered by one of the video restore models | You pay for the share already rendered, rounded up, and get the rest back |
| Being rendered on a model whose provider cannot stop it | Charged if the provider finishes, refunded if the render fails |
| An image or audio generation already running | Charged if it finishes, refunded if it fails |
| Already finished, or its result is being delivered | Too late to cancel. It completes as normal. |
When the provider has not answered yet, the job says the outcome is pending. Nothing is refunded or charged until it does, and the sentence on the job is rewritten when the answer arrives.
A refusal by a content filter is a different case with its own rules: refused renders are refunded unless the provider billed them. How holds, charges and refunds fit together is in How credits work.
Why it differs by model
Every model runs at a provider, and providers handle a stop request differently. There are three kinds:
- Can drop queued work. Seedance 2.5, Hailuo 3 and the 3D models can be stopped for free while they wait in the provider's queue. Once rendering starts, most of them cannot be stopped, so a late cancel is charged if the render finishes.
- Stop part way. The video restore and upscale models, apart from SeedVR2 Restore, can stop mid-render and bill only for the part they rendered.
- Cannot stop at all. Kling, Veo 3.1, Gemini Omni, Grok Imagine Video and Runway, among others, have no way to stop a render once they have it. Cancelling ends your wait and keeps the result out of your library, but if the provider finishes, it bills for the render and your credits are not refunded.
We tested two of these cases on 23 September. A 3D render cancelled while it waited in the provider's queue was refunded in full. A Kling render cancelled mid-way finished at the provider a moment later, was charged, and never reached the library. Each job said so in plain words. The other cases follow the same rules, from each provider's own cancel behaviour.
Tip:Waiting for a slot is still free. A render that is waiting for a free slot at the provider has not been sent yet, so cancelling it then always gives you everything back.
From the CLI, the API and MCP
On the CLI, nolgia jobs cancel <JOB_ID> cancels a job from version 0.2.33. It prints the sentence from the server and the credits refunded or charged. If the outcome is still pending, it tells you to check later with nolgia jobs get <JOB_ID>. Add --json for the whole job.
Through the API, POST /jobs/{id}/cancel returns the job with status: canceled and a cancellation object. cancellation.settlement is refunded, partially_refunded, charged or pending, and cancellation.message is the sentence to show your user as written. Cancelling twice returns the same record. A finished job answers 409 with job_not_cancellable. MCP clients can call nolgia_cancel_job.
Watch for this:Update the SDKs to 0.1.3 for a real cancel. From @nolgia/sdk and nolgia 0.1.3, a job handle's cancel() calls POST /jobs/{id}/cancel and returns the canceled job, and a pending result() then fails with code canceled. In 0.1.2 it only stopped your code waiting while the render kept running and was billed, so upgrade before you rely on it.
The full contract is in Cancel a request and the canceled error code.
Questions and answers
- When is a cancel free?
- Always, if the render has not reached the model provider yet. After that, it is free if the provider stops it before it starts rendering, or if the render fails.
- If the provider finishes anyway, do I get the result?
- No. A cancelled render is never added to your library, even when the provider finishes it and bills for it.
- Why does my cancelled job say pending?
- The provider has not given its final answer yet. Nothing has been refunded or charged so far, and the job updates when the answer arrives.
- Is a cancel the same as a refused render?
- No. A cancel is your choice and shows as cancelled, not failed. A render a content filter refuses is a failure, and it is refunded unless the provider billed us for the attempt.
Know the price before you start a render
Read how credits workRead next
Billing
AI video pricing explained: what one clip costs
How AI video is priced on NOLGIA: by model, length, quality tier, sound and input, with every rate read live, the plan each needs, and how to spend less.
· 7 min read
Guides · Credits
How credits work, and what happens when a render fails
The price is on the Generate button, the job holds it while it works, and the hold becomes a charge or a refund. Here is when credits come back after a failure, a refusal or a cancel.
· 6 min read
Billing
Refused renders are refunded unless the provider billed them
Since 23 September, a render a content filter refuses is refunded unless the provider billed us for the attempt, and the card tells you which happened.
· 5 min read




