Google Cloud Tasks retry per task: pair it with a Sume key
Cloud Tasks now sets retry parameters per task (GA 30 Sep 2026). When a task calls a Sume submit, send the same Idempotency-Key on every attempt.

Cloud Tasks can now take retry settings on each task, so one task that calls a Sume submit endpoint can have its own attempt count and backoff. Every attempt of that task must send the same Idempotency-Key; a retry then repeats the same request instead of creating a second paid job.
Cloud Tasks facts are from its release notes; Sume facts from Generation admission and Errors and credits. Both read 2026-09-30.
What did Cloud Tasks add?
The release notes list, for 30 September 2026 (v2 and v2beta3, GA): set retry parameters when creating a task, create a batch of tasks, and delete a batch of tasks. They were in Preview since 21 July 2026. The task-level retry configuration overrides the queue-level one for that task.
| Parameter | Note from the page |
|---|---|
maxAttempts | Includes the first attempt; -1 for unlimited |
maxRetryDuration | Listed as a per-task retry parameter |
minBackoff | Listed as a per-task retry parameter |
maxBackoff | Listed as a per-task retry parameter |
maxDoublings | Listed as a per-task retry parameter |
Which Sume errors should a retry cover?
Sume's docs say: on 429 rate_limited, back off using retry-after when present. On 429 queue_full, wait for jobs to finish or cancel queued ones, then retry with the same idempotency key. On 503 provider_capacity_exceeded, retry later with the same idempotency key unless the error says not to retry.
A 409 idempotency_conflict means the key was reused for a different operation or payload; the docs say to reuse keys only for exact retries. Do not let a task retry that one.
How do I tie a task to one key?
Pick a stable id per unit of work, for example your own order or scene id, use it as the task name or store it with the task, and send it as the Idempotency-Key header in the task's HTTP request. The key then stays the same on every delivery of that task. Do not generate a new key inside the handler on each call.
The docs recommend async submit with an idempotency key for production integrations, so the task only needs to submit and store the job_id; read the result later through the jobs endpoints. Idempotency keys for AI video APIs has the rule in detail.
How many attempts is reasonable?
That is your call; neither page gives a number. Keep maxBackoff at least as long as the retry-after you see, and stop at a count where a person should look instead. A scheduled variant of this pattern is in Cloud Run job on a schedule.
Sources
Related posts
More in Developers
- Google Cloud Workflows callback needs an IAM token: relay Sume
A Cloud Workflows callback URL needs the workflows.callbacks.send permission and a Bearer token. Sume webhooks cannot carry one, so relay after verifying.
- google/veo-3.1 style ids vs Sume: bare video model ids
OpenRouter names video models org/slug, such as google/veo-3.1. Sume uses bare catalog ids like seedance-2 and never a provider prefix. How to port an id.
- gpt-4o-transcribe-diarize retiring: Sume STT has no speaker labels
OpenAI lists gpt-4o-transcribe-diarize for removal on Feb 26, 2027. Sume STT returns words and sentences with timings, but no speaker field.
- gpt-image-1.5 deprecation: Dec 1, 2026 and Sume model ids
OpenAI removes gpt-image-1.5 and gpt-image-1-mini from its API on Dec 1, 2026. On Sume, send openai/gpt-image-2.5 and list ids with GET /v1/images/models.
Written by Sume