Wan 3.0 seed and size: why the API returns 400 unsupported_parameter
wan-3.0 on Sume rejects seed and size rather than ignoring them. Use resolution and aspect_ratio instead. Why the 400 happens and how to fix the request.

If a wan-3.0 request returns 400 unsupported_parameter, you sent a field no v1 model accepts, most often size or seed, or a non-empty provider.options. Sume rejects these loudly instead of dropping them, so you are never billed for a clip that ignored what you asked. Use resolution and aspect_ratio in place of size, and drop seed.
This follows the Video generation docs, read 2026-09-29, which list these differences from the OpenRouter video API that the route follows.
Which fields cause it?
| Field | Why it is rejected | What to send |
|---|---|---|
size | Every v1 model reports supported_sizes: null | resolution plus aspect_ratio |
seed | No v1 model accepts it; each reports seed: false | Nothing; leave it out |
provider.options | v1 runs one backend per model; the passthrough list is empty | Nothing; leave it out |
How do I get 1280x720?
Send resolution: "720p" and aspect_ratio: "16:9". Wan 3.0 accepts 480p, 720p and 1080p, and the ratios 16:9, 4:3, 1:1, 3:4 and 9:16.
Can I get the same clip twice without a seed?
No, and do not expect it. To avoid paying twice for one intended clip, send an Idempotency-Key on submit: a replay returns the original job. To reuse a clip you like, keep the file it returned.
How do I see what a model accepts?
Call GET /v1/videos/models and read the entry for wan-3.0: supported_resolutions, supported_aspect_ratios, supported_durations, supported_frame_images, supported_input_references, seed and allowed_passthrough_parameters.
Sources
Related posts
More in Developers
- Webhook not fired when a job is canceled? Jobs vs runs in Sume
A canceled Sume job sends job.canceled, but a canceled run sends no webhook at all. Which surface you called decides it; how to detect a cancel by polling.
- Webhook payload too large (1 MiB)? Fetch the result URL
A Sume run receipt over 1 MiB arrives with payload null and a payload_too_large error. The run did not fail; fetch the receipt from result_url. Handler steps.
- Webhook endpoint redirect 301 not followed: what Sume does
Sume does not follow redirects on webhook deliveries: a 3xx is a failed attempt, not a delivery. Point webhook_url at the final URL, not a hop.
- Webhook dedupe id stable across retries: request_id and created_at
On Sume run webhooks, dedupe on the envelope request_id, which equals run_id and repeats on every retry. Order by created_at; request_id cannot.
Written by Sume