ADK 2.11 abort_signal and /run_sse cancel: Sume job keeps billing
Google ADK 2.11.0 can abort a run and cancels /run_sse on disconnect. A Sume job started by that run is not cancelled by it.

Stopping an ADK run does not stop a Sume job it already created. Google ADK Python v2.11.0 (2026-10-02) added abort_signal to Runner, Workflow and nodes for graceful stop, and made /run_sse cancel automatically when the client disconnects, but a generation running on Sume's servers keeps running and keeps being billed.
Treat cancellation of the agent and cancellation of the job as two separate actions.
What gets cancelled
The abort and disconnect features end the agent's work in ADK. They have no knowledge of remote jobs created through an MCP tool.
At a glance
| Action | Stops the ADK run | Stops the Sume job |
|---|---|---|
| abort_signal | Yes | No |
| Client disconnect on /run_sse | Yes | No |
| Explicit Sume cancel | No | Yes |
Closing the gap
Record each Sume job id when the create call returns. In a cleanup path triggered by the abort, cancel the pending jobs through Sume, or leave them and collect the results later with jobs_wait using the same ids.
Never re-run the paid create on resume; the idempotency_key exists so a replay does not double-charge.
- Store job ids outside the agent's memory.
- On abort, decide: cancel or keep.
- Bound cost up front with max_spend_usd.
Limits and what is not verified
The release notes do not say which tools receive a cancellation signal. I did not test an aborted run mid-job. Sume's cancel tool name should be read from tools_list for your account rather than assumed.
Sources
Related posts
More in Developers
- ADK 2.11 tool nodes pause for approval: gate Sume paid tools
Google ADK 2.11.0 tool nodes can pause for user approval via RequestInput. Use it so a Sume paid tool call waits for a person before it spends.
- Agent crashed after submitting: find the Sume runs it started
List a Format's runs, read trigger.idempotency_key, and rebuild which rows already ran after a fresh agent session or crash, without paying for a duplicate.
- Teammate continues a thread: why webhook_delivery.url reads null
A Sume Agent turn reading a teammate's job sees delivery state, but webhook_delivery.url and last_error are null. Who reads which jobs, explained.
- AI favicon for Google Search: square, over 48 px, stable URL
Google wants a square favicon bigger than 48 px at a URL that stays put. How to make one with the Sume image API, what it costs, and what no tool can promise.
Written by Sume