Runway ASSET.INVALID vs Sume validation and unreachable media

Runway's ASSET.INVALID covers any unacceptable input media. Sume separates validation errors from fetch failures, and one 502 is still your input to fix.

4 min readSume
All posts

Runway's ASSET.INVALID means an input image or video is not acceptable for the task, often its dimensions, duration or other properties, and you should not retry. Sume splits the same situation in two: a validation category ("Fix input") for a bad request, and separate codes such as input_media_unreachable when Sume could not fetch the media. A validation failure needs a fixed request; an unreachable-media failure needs a reachable URL first.

Runway text is from its Dev docs; Sume text from Errors and rate limits. Both read 2026-10-01.

How does Sume classify bad input media?

There are three places it shows up, and the next step differs a little.

Input-media failures in the Sume docs, read 2026-10-01.
Code or categoryMeaningNext step
validation (job category)The request or its values are not validFix input
image_not_fetchable / input_media_unreachableSume could not fetch or mirror media safely (503 class)Check the media is a public HTTPS image URL, then retry or contact support with the request id
attachment_fetch_failed (502, Formats)Sume could not fetch an attachmentnext_action is fix_input: make the URL publicly reachable

Why is a 502 still my problem?

The Formats errors page says it directly: despite the 5xx, an attachment_fetch_failed is your input, and next_action is fix_input. If you only look at the status class, you would retry it as a server fault. Read next_action first. More on the URL rules in HeyGen download failed versus Sume.

Which media limits can I check before submitting?

Some are written down. For the legacy Video 1.0 endpoint documented in Video 1.0, reference_video_urls takes 1 to 3 video URLs, reference_image_urls takes 1 to 9 images, and reference_audio_urls takes 1 to 3 audio URLs and needs at least one reference image or video. Runway's page gives no numbers for its own limit, so compare against each provider's reference, not this table.

Should I ever retry after a fetch failure?

Once, after you have confirmed the URL opens in a private browser window with no login. If the same code returns, send the request_id (also the x-sume-request-id header) to support. Do not include signed URLs or keys.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume