Dropped connection mid-render: what happens to the Sume job
A dropped connection never cancels a Sume job. Wait again with jobs_wait on the same ids, or read the job status; never resubmit the paid create.

If your connection drops while a Sume job renders, the job keeps running and keeps billing. Reconnect and call jobs_wait again with the same job ids, or read the status once. Do not submit the paid create a second time.
What the MCP Tasks extension adds
The AAIF post on the 2026-07-28 MCP changes describes a Tasks extension with taskId handles, polling through tasks/get, mid-flight input through tasks/update, and resilience to connection drops. The idea is the same one Sume jobs already follow: the work has an id that outlives the connection.
The Sume rules
Every Sume submit returns a durable job id in its first response. The relevant behavior is documented in the jobs page.
| Situation | What to do |
|---|---|
jobs_wait returns wait_slice_expired | Retry jobs_wait with the same ids |
524, 522, 523 or 525 on jobs_wait | Transport failure, not a job outcome; re-issue the wait or read jobs_status |
| Client timeout or process restart | Read GET /v1/jobs/{id}/status; the job is still running |
| Submit itself was retried | Reuse the same Idempotency-Key |
outcome: operator_stopped | Terminal; jobs produced no output and holds were refunded |
Why waits are sliced
On remote MCP, timeout_seconds defaults to 50 and is capped at 55; larger values are clamped and the response says so in wait_slice_clamped. A wait is one HTTP request held open with nothing transferring, and edges close such requests eventually. For a ten-minute render, repeat the wait rather than asking for a longer one.
jobs_wait accepts one job_id or up to 20 job_ids with wait_for: "all" or "any". With include_results: true each completed id returns its result in results[], so a wave needs no separate read.
Cancel is not the same as disconnect
Cancellation is an explicit call, POST /v1/jobs/{id}/cancel, and it succeeds only before generation work starts. After that the API returns 409 job_generation_already_started and the job runs to completion. Only the member whose key or Agent turn created the job can cancel it.
So the safe recovery loop is: keep the id, wait again, read the result when completed. Details are in Jobs and results.
Sources
Related posts
More in Developers
- "Each input_references entry needs image_url.url": the fix
A bare URL string or a missing url in input_references returns 400 invalid_request on Sume. The exact entry shape, reference ceilings per row, a helper.
- Mcp-Name header rules: rate-limit paid render tools at the gateway
MCP 2026-07-28 requires Mcp-Method and Mcp-Name headers on Streamable HTTP POSTs. A gateway can rate-limit paid render tools by name without reading the body.
- GPT Image 2.5 on ElevenLabs: 14 ratios plus auto. Sume lists 17
ElevenLabs offers 14 fixed ratios plus auto for GPT Image 2.5. Sume's normalized list has 17 plus auto. Read what each model accepts before sending one.
- ElevenLabs TTS output_format: 192 kbps needs Creator, PCM needs Pro
The ElevenLabs text to speech reference ties 192 kbps MP3 to Creator and PCM or WAV to Pro. A format table, a fallback chooser in Python, and the seed range.
Written by Sume