Runway INTERNAL.BAD_OUTPUT.01: fix the prompt, then resubmit
Runway's INTERNAL.BAD_OUTPUT.01 may succeed after prompt fixes. Sume's equivalent step: inspect job events, fix the input, and send a new request.

Runway says INTERNAL.BAD_OUTPUT.* marks a generation its internal systems rejected for quality or system-error reasons, most often .01, and that a retry may succeed if you correct the prompt. On Sume the matching step for a generation_rejected job is to read the job events, change the unsupported input, and submit a new request with a new Idempotency-Key.
Runway text is from its Dev docs and Sume text from Errors and rate limits, both read 2026-10-01.
What causes INTERNAL.BAD_OUTPUT.01 on Runway?
The page lists three common causes: logos, watermarks or overlaid text in input media; a prompt that explicitly asks for text generation; and a prompt that asks for a media prompt to be written instead of giving one directly, such as "write a prompt for...".
What does Sume tell you for a rejected generation?
The job error category generation_rejected has the documented next action "Inspect events and fix unsupported input". The machine-readable next_action field takes a fixed set of values, so your code can branch without reading text.
| Field or route | Use |
|---|---|
category: generation_rejected | Inspect events and fix unsupported input |
next_action | One of authenticate, fix_input, add_funds, retry_later, poll_status, inspect_events, contact_support |
GET /v1/jobs/:id/events | The event trail for one job |
message | For humans; may change, never match on it |
Why does a corrected resubmit need a new key?
An Idempotency-Key is tied to a request body. The Formats errors page says a key reused with a different body returns 409 idempotency_conflict, "do not retry as is". After you change the prompt, you are making a different request, so mint a new key. See failed run retry needs a new key.
Does Sume list the same prompt mistakes?
No. The sources I read do not list causes for generation_rejected, and they do not claim it maps to Runway's codes. Treat the events as the evidence, and do not copy Runway's list as Sume's rules. For another provider's moderation field, see Flux moderation versus Sume rejection.
Sources
Related posts
More in Developers
- Runway INTERNAL or null failureCode: how long to delay a retry
Runway says to add a delay for INTERNAL or null failure codes but gives no number. Sume's errors carry retryable and retry_after_seconds fields.
- Runway Model Router allow and deny lists vs Sume auto
Runway's Model Router has allow and deny lists plus per-modality credit ceilings. Sume has no lists: pin a catalog id, or send sume/auto and accept its pick.
- Runway per-generation usage export vs the Sume GET /v1/usage ledger
Runway's enterprise usage export lists credits per generation. On Sume, GET /v1/usage returns USD ledger rows per workspace, filterable by job_id.
- Reference media guidelines: Runway Recipes and Sume checks
Runway's guide says strong references drive quality. On Sume, add the checks the docs list: public HTTPS URLs, per-model reference types, 3-second video refs.
Written by Sume