Format run failed with incomplete_assembly: continue it, do not re-run
incomplete_assembly means a Sume Format run hit its time limit mid-generation. Continue with previous_run_id; finished clips are not regenerated.

incomplete_assembly is a Sume Format error that means the run reached its time limit while generation jobs were still unfinished, so the delivered media is not everything it paid for. The documented fix is to continue the run with previous_run_id. The finished clips are on the thread and are not regenerated.
What the error carries
details.pending_job_count and details.pending_jobs[] name what was left. The partial ledger is on output when your output_schema allows it. A failure never has a primary_output_url; it is null, so a check for it means a deliverable exists.
| Error code | Documented action |
|---|---|
incomplete_assembly | Continue the run with previous_run_id |
primary_output_missing | Continue the run to fill the gap, or retry |
agent_reported_failure | Read details.reason; continue or re-fire with a new key |
provider_unavailable | Retry with a new Idempotency-Key; finished clips are not regenerated |
format_run_failed | Compare billable amount with the cap on the receipt |
A handling loop
On a failed receipt, read error.code. For incomplete_assembly, post a new run with the old run id, an instruction such as finishing the pending items, the same output_schema and primary_output_key, and a fresh cap. Wait for previous_run_id to be terminal, which it is, since the first run failed. If the second turn fails the same way, look at pending_jobs[] for a specific job that stalls rather than looping.
A continuation shares the thread but gets its own receipt, cap and webhook, so alert on each one separately.
- Cap the number of continuations per order, so a stuck job does not drain a budget.
- Keep the first run id in your record; the second turn lists all artifacts.
- Distinguish transient
provider_unavailablefrom this code.
What to tell your users
Show a partial state, not an error screen: the finished clips are real, and a continuation is under way. Because the first run's artifacts stay on the thread, a status page can list them while the second turn completes. If the continuation also fails, hand the case to a person with both run receipts attached.
Limits
A continuation can fail again, and each one can spend up to its own cap. The docs do not promise an outcome, only that finished clips are kept. If a specific job keeps stalling, change the input or the brief rather than repeating.
Related posts
More in Formats
- Format run instruction: 8000 characters accepted, about 4000 carried
A Sume Format run instruction accepts 8,000 characters, but only the first ~4,000 reach the agent as prompt text. Put long data in input, carried whole.
- Format run status_url or result_url: which one do I poll?
Poll status_url for a small payload, then read result_url once the run is terminal. result_url answers 409 run_not_completed while the run is in flight.
- Format run stuck in queued: read queue.state and retry_after_seconds
A Sume Format run that stays queued carries a queue block. waiting is normal; runtime_unavailable means nothing claimed it. What to read, and when to ticket.
- OpenAI response_format json_schema to a Sume output_schema
Moving a json_schema from OpenAI structured outputs to a Sume Format run: the field name, what transfers, no JSON mode, and why output comes once, post-run.
Written by Sume