Temporal Activity ID Reuse Policy vs a Sume Idempotency-Key
Temporal's Activity ID Reuse Policy covers closed Standalone Activities; Sume's Idempotency-Key covers a retried submit. Why one does not replace the other.

Temporal's Activity ID Reuse Policy decides whether you can start a new Standalone Activity with the ID of one that already closed, and it protects nothing at Sume: a new Activity run is a new submit, and Sume dedupes only on the Idempotency-Key you send. If you use Allow Duplicate you can start the same business request twice, and each Activity must still pass the same Sume key if you want one job.
Temporal's options are from its Standalone Activity documentation, read 2026-10-03; the Sume rules are from Jobs and results and Errors and rate limits. How long Sume keeps an idempotency key is not stated in the pages I read, so I make no claim about a window.
What are the Temporal options?
For a closed execution within the retention period, the policy options are Allow Duplicate (the default), Allow Duplicate Failed Only and Reject Duplicate. A separate conflict policy applies while an execution with that ID is still running: Fail is the default, and Use Existing returns a handle to the running one.
| Temporal policy | What it does | Sume counterpart |
|---|---|---|
| Allow Duplicate (default) | A closed ID can be reused | A new Activity needs the same Idempotency-Key to return the original job |
| Allow Duplicate Failed Only | Reuse only after a failure | A failed job and a new submit are separate; decide on a new key on purpose |
| Reject Duplicate | A closed ID cannot be reused | Prevents a second Activity, not a duplicate submit inside one |
| Conflict policy Fail or Use Existing | Applies while an ID is running | Same key and body return the original job on retry |
Which one should I rely on?
Use both for different failures. The Temporal policy stops accidental duplicate Activities for the same business id. The Sume key stops a duplicate bill when one Activity retries its submit after a timeout. Sume's docs say to reuse a key only for the same operation and payload, and a changed payload under the same key returns 409 idempotency_conflict.
If a business request really should produce a new render after the first failed, give it a new key on purpose, and keep the failed job id so you can compare the two.
Sources
Related posts
More in Developers
- Temporal Standalone Activity Start Delay: a scheduled Sume submit
Start Delay holds only the first Activity Task; retries follow the Retry Policy. A delayed Sume submit needs one stable Idempotency-Key for every attempt.
- Test two caption looks on one Reel with source_caption_id
Restyling captions with source_caption_id reuses the first caption job's video and word timings, so no second transcription runs. Billing stays one render each.
- How to test a webhook URL before a Sume Format run uses it
POST /v1/webhooks/test-deliveries sends a signed webhook.test event to your URL. See the scope, the response fields, and the secret check, with no paid run.
- TikTok Display API video query: read is_aigc on 20 posts per call
TikTok's Query Videos endpoint returns is_aigc and counts for up to 20 video ids per call. Short Python audit, and where Sume fits.
Written by Sume