Credits are a ledger, not a guess
2026-08-24 · updated 2026-08-30
The problem
Browser estimates feel like a balance. They are not. Retrying a failed job without idempotency would double-charge if the server trusted the client.
What gets metered
Expensive AI operations should debit a ledger tied to user and project or job when those entities exist. Mutations are designed to be idempotent so webhooks and retries do not double-credit or double-charge. The client is not the source of truth for plan or remaining credits.
What you can use estimates for
Planning a session: “this website pass will probably cost about this.” After the job, refresh the workspace balance. If numbers disagree, believe the server.
Automation without a blank check
Rate limits and auth gates exist so a loop cannot drain the ledger silently. If you are building a workflow, attach it to a project and expect a job record.