← Back to blog
Pricing· May 25, 2026

Failed generations refund automatically

You will never email us about a 0-output bill. The credit ledger and the failure live in one transaction.

Generations can fail. A vendor times out, a model returns a safety-filter error, an upload signed URL expires. The cost of a failure should be zero — not a support ticket, not an apology email, not a manual ledger fix.

When the worker marks a generation as failed, the refund posts in the same database transaction. Either both happen or neither does. Your balance never lives in a state where credits were charged but no refund landed because of a half-applied write.

You see the result in two places. Your Library shows the failed entry with its error code. Your account ledger on the billing page shows the refund line item with reason generation_refund. The two numbers should always agree — if they don’t, that’s a bug worth emailing us about.