← Files ImagineArtARCHIVED FILE

skills/premiere/references/errors.md

2.27 KB · Oct 2, 2026 · 00:04 UTC

↓ Download file

# Failure handling

**Never apply one blanket response to every failure.** Identify which kind it is first.

| Kind | Looks like | What to do |
|---|---|---|
| **Pending** | Job queued or generating | **Wait.** Never resubmit — you will be billed twice for one result. |
| **Technical** | Timeout, 5xx, transport error | Retry **at most twice**, same parameters. Then stop and report. |
| **Unsupported capability** | The tool doesn't accept this input or can't produce this output | Use a supported route, or say plainly it isn't available. Never fake it. |
| **Safety refusal** | Content declined on policy grounds | **Do not route around it.** Tell the user what was declined, in one line, and offer a different subject. |
| **Model restriction** | A specific model won't accept this input class, but others will | Switch, and **say which model you switched to and why**. |
| **Billing / auth** | Subscription, credit or token error | Relay the message verbatim — it carries the fix. Never retry. |

## Safety refusals versus model restrictions

These look similar and are handled differently.

- A **safety refusal** is a judgement about the content. Retrying elsewhere to get around it
  is not acceptable. Report it and offer a different subject.
- A **model restriction** is one model's input policy — for example `seedance-2.5` declines
  human subjects, including illustrated ones, while other models accept them. Switching is
  legitimate, but it is a **material change**: say which model you used instead.

When you cannot tell which one you're facing, treat it as a safety refusal and ask.

## Always disclose material changes

The user must be told, in one short line, when you changed:

- the **model** (different look, different ceiling)
- the **duration** (a model's allow-list forced it)
- the **resolution** (the model couldn't reach what was asked)
- the **number of outputs** (a partial batch)

Silent substitution is how a user ends up confused about why two runs look different.

## Retry budget

**Two attempts per stage, maximum.** After that, stop and report what happened with what
you actually observed. Endless retrying burns credits and hides the real problem.

Track what already succeeded. When a multi-stage pipeline fails at stage two, **do not
re-run stage one** — reuse its output.

SHA-256: 17088b6219657c5462647ac1f5e37cec96e2859b7348202b8c0d457af000effc