"An ambiguous job is a question, not a dead end. Reconcile asks every source you already have before anyone even mentions paying again."
Turning Ambiguous Into Answered
Track 1 gave you the ambiguous state; this is how it gets resolved. Reconciling a failed or ambiguous job is a search, in order, through everything you might already own. First the cache: maybe the job actually finished and the audio is right there. Then the durable chunk lineage: maybe every paid chunk is saved and only the local concat failed, so the file rebuilds for free. Then provider history: the provider may have a record, tied to your request ID, of the audio it produced and the charge it made. Each of these recovers the result at zero new cost.
The Line Reconcile Never Crosses
Here's the invariant that keeps recovery safe: reconcile reuses, it never re-buys. It can read the cache, rebuild from chunks, and query provider history — but it will not issue a new paid request on its own. If none of those sources holds the audio, reconcile stops and reports that a decision is needed. A second paid attempt is a deliberate act, never a silent step hidden inside a recovery routine.
Why Automatic Re-Pay Would Undo Everything
If reconcile could quietly pay again to "just fix it," every ambiguous timeout would risk a double charge — exactly the outcome the whole track exists to prevent. By making reconcile strictly non-spending, an ambiguous job can be retried, resumed, and repaired as many times as needed with no fear, because none of those paths can cost money. The spend decision is lifted out of the automatic layer entirely.