Retry one scene of a Format run without paying for the whole run

Send previous_run_id to continue a Sume Format run as another turn: redo one scene, keep the rest. The refusals, 404, 400 and 409, and what each means.

5 min readSume
All posts

To redo one part of a Format run, create a new run on the same Format with previous_run_id set to the earlier run. The next turn continues the same conversation: the agent is replayed what it produced, so it can redo one scene and leave the rest alone. The docs say this is how live-commerce integrations retry a single scene without paying for the whole show again.

The request

Name the old run, say what to redo in instruction, pass any data in input, bind the same output_schema as before (it is per run, not inherited) and give the new run its own cap.

{
  "previous_run_id": "RUN_ID",
  "instruction": "Retry the selected scene only. Keep every other scene unchanged.",
  "input": {"scene_id": "sc_7"},
  "generation_spend_cap_usd": 8
}

Refusals

A continuation is a new run with a new id, receipt, cap and webhook. The original never changes.

Facts from docs.sume.com/formats/runs, checked 2026-10-01
ResponseMeans
404 previous_run_not_foundUnknown id, or another owner's run
400 previous_run_format_mismatchThe run was created on a different Format
409 previous_run_not_terminalStill running; poll it, then call again
400 previous_run_not_resumableNo thread_id, or neither completed nor any artifacts
Continuable ifthread_id is not null and it completed or has non-empty artifacts[]

Practical notes

A failed run that left work behind can be continued; one that left nothing cannot, so start fresh. Never send a thread id: it is 400 unknown_parameter; name the run. On a continued run artifacts[] lists everything the whole conversation made, while usage stays per run, so budget each turn on its own receipt.

Keeping scene state

Your own record should hold the first run id, each continuation id, and which scene each one touched. The platform keeps the artifacts, but it does not know your scene numbering; the scene_id in input is yours. A per-scene retry count in your database prevents a loop of costly retries on a scene the brief simply cannot satisfy.

Limits

The retry spends its own cap and is not free; a narrow instruction keeps it cheap but the agent can still change more than you asked, so compare artifacts afterward. Send a fresh Idempotency-Key per continuation, derived from the scene and a version. A canceled run delivers no webhook, so for webhook-only integrations read the cancel receipt.

Related posts

More in Formats

All Formats posts

Written by Sume