Responses steering after a video job started: what Sume does
response.steer does not cancel started tools. A Sume video job past its start runs to completion; jobs_cancel returns 409 job_generation_already_started.

If the user steers the agent after a Sume video job has started generating, the job keeps running to completion. Steering changes the model's next output, and cancelling only works before generation work starts, so the agent has to call jobs_cancel itself and handle a 409.
The OpenAI steering guide, read 2026-09-30, says steering does not rewrite output already sent to your application, undo earlier actions, or cancel tools that have already started. It is available with the GPT-6 family over a WebSocket connection to the Responses API, using response.steer with previous_response_id and new input.
What does Sume's cancel do?
Per Jobs and results, cancellation succeeds only before generation work starts. After that the API returns 409 job_generation_already_started with details.cancelable: false, and the job runs to completion. Cancelling a job that is already canceled is idempotent and returns the same canceled job, so a repeated call is safe.
| Job state when cancel is called | Result |
|---|---|
| Before generation starts | Job becomes canceled |
| After generation started | 409 job_generation_already_started, cancelable: false |
Already canceled | Same canceled job returned |
How should the agent react to a steer?
Keep the job_id from each create. On a steer that drops the video, call jobs_cancel (a write tool that needs an idempotency_key); if it returns the 409, tell the user the job is already generating and offer to use or discard the result. The REST form is POST /v1/jobs/{id}/cancel.
Does dropping the connection stop billing?
No. A client-side timeout does not cancel the job; it keeps running and still bills, and you have only stopped watching. Store the id and pick it back up from status_url, or cancel explicitly. The wider cancel behavior is in cancel AI video jobs and runs.
Sources
Related posts
More in Developers
- Retool Workflow webhook needs X-Workflow-Api-Key: use a relay
Retool Workflows authenticate webhooks with an X-Workflow-Api-Key header or query parameter. Sume documents no custom delivery headers: relay after verifying.
- Rough cut from a script by API: one scene per Timeline slot
Descript Quick Design splits a script into moments with changing visuals. With Sume you map each scene to a Timeline video slot over a voiceover spine yourself.
- Search footage for a spoken phrase with an API: words with timing
DaVinci Resolve 21 lists IntelliSearch. To find a spoken phrase in a clip by API, transcribe with video inspect and search words[] in your own code.
- Seedream image URL expired after 24 hours: use the Sume copy
BytePlus keeps Seedream image URLs for 24 hours, then clears them. On Sume, read data[].url or the job result URL and store that, not a provider link.
Written by Sume