Do I pay for a failed AI avatar video job? Refunds on Sume

Sume reserves the avatar video price at submit, captures it on completion, and releases or refunds it where a job fails. What it means for retries.

4 min readSume
All posts

Mostly no. For paid generation, Sume reserves the estimated amount when it accepts your request, captures it when the job completes, and, in the words of the Generation admission docs, "where applicable, failed jobs and failed queue admission release or refund the reservation." So a job that ends in failed is not billed as a finished video. Sume avatars are async jobs: you submit a request, get a job id back, and read the finished video later. There is no live video session.

The wording "where applicable" matters, and this post explains what you can rely on and what you should check on your own account.

The three moments

What happens to the money at each stage (Sume docs, read 2026-10-07)
MomentWhat Sume doesWhat you do
Submit acceptedReserves the estimated amount from the workspace balanceStore the job id and the Idempotency-Key
Job completedCaptures the reserved usageFetch the result and copy the media URL
Job failed or admission failedReleases or refunds the reservation where applicableRead the public error, fix the cause, submit again with a new key
Submit refused (402 insufficient_credits)No job exists, nothing reservedReduce the request or add balance
Cancel before generation startsThe job ends canceledCancel only works before generation work starts

Retry rules that avoid a double charge

Two different retries need two different habits. If your client timed out and you do not know whether Sume accepted the request, retry the submit with the same Idempotency-Key and the same payload. You get the original job back, not a second reservation. If the job reached a terminal failed state, the request is finished, so change the thing that failed and send a new request with a new key.

Never resubmit a paid request only because a local process stopped waiting. A client-side timeout does not cancel the job, which keeps running and billing. Poll the job by id instead.

Budget for the worst case

The reservation is the estimated cost for the full planned duration, so the balance you need at submit equals the price of the full video. At plus, a 60-second video reserves $14.70, and at max it reserves $33.00. If your workspace balance is lower than that, the submit returns 402 insufficient_credits before any provider work starts.

If you run many jobs in parallel, the reservations add up. Ten 30-second jobs at plus hold $73.50 at the same time. Check the balance for the whole wave, not for one clip.

What to check on your own account

Look at one failed job in your workspace after your first test: read the job record for the public error, and compare the ledger or usage view before and after. The docs describe the policy, and your own receipts show the result for your plan. Keep a note of the job id, because the job id is what support or your own audit will need.

  • Store the job id before you return from the submit handler.
  • Use an Idempotency-Key on every paid submit.
  • Retry the same key only after a client-side failure.
  • Use a new key after a terminal failed, once the cause is fixed.
  • Reserve balance for the total of all jobs in flight.

Cancel versus fail

A canceled job and a failed job are different. A failed job reached a terminal failure with a public error. A canceled job ended because you asked it to. Cancellation succeeds only before generation work starts: a request after that point can answer with a conflict, and the job keeps running. So the safe time to cancel a video you no longer want is while it is still queued.

This matters for batches. If you submit twenty clips and then spot a mistake in the script, cancel the ones still waiting at once, and let the ones already processing finish. Then fix the script and submit corrected requests with new idempotency keys.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume