Wan 3.0 request returns 409 idempotency_conflict after a prompt edit
Reusing an Idempotency-Key with a changed Wan 3.0 payload returns 409 idempotency_conflict. Use a new key for a new prompt; reuse it only for exact retries.

A wan-3.0 request returns 409 idempotency_conflict when you reuse an Idempotency-Key with a different payload. The key means "this exact operation": the same key and the same body returns the original job without billing a second one, while a new prompt needs a new key. Fix it by minting a fresh key whenever any field changes.
Behavior comes from Sume's Generation admission docs and Jobs and results docs, read 2026-10-02.
Why does Sume return 409 and not run the new prompt?
Because the key already maps to a job. Sume refuses to guess whether you meant a retry or a new request, and a silent second run could bill twice. The docs list the code under immediate rejections: 409 idempotency_conflict means the key was reused for a different operation or payload.
| What you send | What you get |
|---|---|
| Same key, same body, after a timeout | The original job, not a second charge |
| Same key, edited prompt or duration | 409 idempotency_conflict |
| New key, edited prompt | A new job |
| No key, retry after a network error | Possible duplicate; not safe for paid submits |
How do I choose keys for a batch?
Build the key from the clip's identity, not from a timestamp: for example a campaign name, a shot number and a version, such as spring-shot-04-v2. A retry then reuses the key, and a re-render bumps the version. Keep the key with the job id in your own records.
A random key per attempt defeats the purpose, since a timed-out request cannot be matched to its retry.
What if I only changed the prompt slightly?
Any change counts. Even a one-word edit to the prompt, a changed duration or a different resolution makes it a different operation. Do not try to patch the old job; submit a new request with a new key, and cancel the old job if it is still queued.
For safe retries after a timeout, resend the identical body with the identical key. See idempotency keys for AI video APIs and cancelling a queued job.
A quick test for your own code: submit the same body twice with one key and confirm you get the same job id back; then change one word with the same key and confirm you get the 409. If both behave as described, your retry logic is safe.
Sources
Related posts
More in Developers
- Wan 3.0 polling every 15 seconds vs Sume's 30-second poll
Alibaba recommends polling Wan 3.0 every 15 seconds. Sume's video guide uses 30 seconds and a signed callback_url. Which to pick and why.
- Wan 3.0 has six regional endpoints; Sume has one base URL
Alibaba's Wan 3.0 API is served from six regions with a workspace id in the URL. Sume's video API uses api.sume.com/v1/videos with no region field.
- Wan 3.0 video URL purged after 24 hours: what Sume returns
Alibaba keeps Wan 3.0 task ids and video URLs for 24 hours. Sume returns media.sume.com artifacts instead. What to store and when to download.
- WaveSpeed API v3 predictions/result vs Sume /v1/jobs/status/result
Porting from WaveSpeed's api/v3 submit and predictions/{id}/result to Sume: base URLs, Bearer auth, idempotency keys, status and result routes side by side.
Written by Sume