Blog / Billing

What happens when you cancel a render

Until 23 September, stopping a render only stopped your wait. Now cancel stops the render where the provider allows it, and tells you exactly what happened to your credits.

  • 6 min read
  • Updated

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 wasWhat happens to your credits
Still with NOLGIA: queued, or waiting for a free slot at the providerRefunded in full, straight away. Nothing was sent.
In the provider's own queue, on a model whose provider can drop queued workRefunded in full once the provider confirms it stopped
Being rendered by one of the video restore modelsYou pay for the share already rendered, rounded up, and get the rest back
Being rendered on a model whose provider cannot stop itCharged if the provider finishes, refunded if the render fails
An image or audio generation already runningCharged if it finishes, refunded if it fails
Already finished, or its result is being deliveredToo late to cancel. It completes as normal.
From the cancel rules in the NOLGIA Jobs docs.

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 work

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