Cloud Tasks batch delete GA: a deleted task is not a canceled Sume job
Cloud Tasks batch delete reached GA on 2026-09-30. Deleting queued tasks stops submits that never ran; a Sume job already accepted needs its own cancel call.

Deleting Cloud Tasks tasks does not cancel Sume jobs: a deleted task is a submit that never ran, while a job Sume already accepted keeps going until you call POST /v1/jobs/{job_id}/cancel, and that call succeeds only before generation work starts. Google announced on 2026-09-30 that batch task creation, batch task deletion and task-level retry configuration are generally available in the v2 and v2beta3 APIs.
The Google detail is from the Cloud Tasks release notes, read 2026-10-03; Sume's cancel rule is from Jobs and results and Generation admission. I did not run a Cloud Tasks queue against Sume.
How do I abort a wave in the right order?
Delete first, so no new submits start, then cancel the jobs your handlers already created. Your handlers must have stored each job_id at submit time for the second step to work. A task that ran between your listing and your delete has already created its job, so the cancel pass must read your store after the delete, not before.
| Action | Stops | Does not stop |
|---|---|---|
| Batch delete of tasks | Tasks not yet dispatched | Jobs already accepted by Sume |
POST /v1/jobs/{id}/cancel before start | A queued job | Nothing after generation starts |
POST /v1/jobs/{id}/cancel after start | Nothing | The job: 409 job_generation_already_started, details.cancelable: false |
| Waiting for a task retry | Nothing | Retries use the task's own settings |
What does cancel do once the job has started?
Sume answers 409 job_generation_already_started with details.cancelable: false, and the job runs to completion and bills. Cancelling a job that is already canceled is idempotent and returns the same canceled job. Queued jobs you no longer need are the ones worth canceling, and canceling them is also the recommended response to 429 queue_full.
Do not treat a failed cancel as a reason to submit again. Poll status_url to the terminal state and use the result or drop it.
Sources
Related posts
More in Developers
- Cloudflare Access 302 to login is not a Sume webhook delivery
Strict service token auth returns 401 or 403 instead of a 302 login redirect, but Sume never sends a service token. What a 3xx on your webhook URL costs you.
- Cloudflare Access strict mode: token headers on every Sume poll
Strict service token auth issues no CF_Authorization cookie, so a Sume job poller behind Access must send its token every time. Triage 401, 403 and Sume errors.
- Cloudflare Agents addMcpServer for Sume: streamable-http and headers
Connect a Cloudflare Agent to Sume's hosted MCP server with addMcpServer, an explicit streamable-http transport and a bearer header, and keep jobs resumable.
- Cloudflare portal Code Mode policy vs Sume script_run
Both shrink tool-call overhead, in different places. What Cloudflare's portal Code Mode policy controls and when Sume script_run is the other half.
Written by Sume