Sume job failed artifact_too_large: shrink the output
A finished file that storage refuses with HTTP 413 fails as artifact_too_large and is not retryable. Shorten the cut, lower the resolution or the bitrate.

artifact_too_large means the file a job produced was bigger than Sume's artifact upload limit, so it could not be stored and the job failed without a result. It is not a timeout and not retryable: shorten the cut, lower the resolution or lower the bitrate before you submit again.
The public message says it plainly: the generated file was larger than the artifact upload limit, and re-running the request unchanged will fail the same way. next_action is fix_input.
How the status maps
The remap reads details.artifact_upload_status, the HTTP status the storage side returned for the upload, and treats only deterministic client statuses as a rejection.
For the other 4xx case the message reads "Artifact storage rejected the generated file, so it could not be stored." and ends with the same warning that an unchanged rerun fails the same way. The category is generation_rejected and the stage is generation_processing.
| details.artifact_upload_status | public_reason | retryable | next_action |
|---|---|---|---|
| 413 | artifact_too_large | false | fix_input |
| Another 4xx, such as 400 or 403 | artifact_upload_rejected | false | fix_input |
| 408 or 429 | Ordinary transient path | Per the stored flag | retry_later when retryable |
| Any 5xx | Ordinary transient path | Per the stored flag | retry_later when retryable |
Why the mapping is strict about 413
A code comment in the remap explains the history. A 413 on a finished render carried no provider status, so it fell through to the generic path, was labelled a generation timeout with retry_later, and an automated client re-rendered the same oversized timeline again and again before reporting a temporary timeout. Every word of that advice was wrong. The dedicated branch exists so that a size problem is never described as a transient one.
What to change
The file is too big, so the request has to produce a smaller file. The levers are the ones the message names.
- A shorter cut or a shorter
duration. - A lower resolution. The Video Generation page lists the resolutions each model accepts.
- A lower bitrate, on endpoints that take a bitrate setting.
- Fewer or lighter inputs when the output is assembled from several clips.
Branch on it in code
A client that retries on failure should treat this reason as a stop sign. This function returns what to do for a job error object.
After the change, submit a new job. The failed one is terminal and keeps its error, and the broader retry rules are in which job errors to retry.
def next_step(error):
reason = error.get("public_reason")
if reason in ("artifact_too_large", "artifact_upload_rejected"):
return "shrink the output, then submit a new job"
if error.get("retryable") and error.get("next_action") == "retry_later":
return "wait %ss, then retry" % (error.get("retry_after_seconds") or 30)
if error.get("next_action") == "fix_input":
return "change the request"
return "read the job events"
print(next_step({"public_reason": "artifact_too_large", "retryable": False}))
print(next_step({"retryable": True, "next_action": "retry_later", "retry_after_seconds": 12}))Sources
Related posts
More in Developers
- Sume content_policy_rejected: image, music and video messages
Sume scans a provider's rejection text for six phrases and answers with one of three fixed content-policy messages and next_action fix_input.
- Sume job failed: generation_output_unavailable, retry or not
generation_output_unavailable means Sume could not copy a finished output into its storage. Retryable true gives retry_later; false gives contact_support.
- Sume job failed: image_content_rejected, what to change
image_content_rejected marks a non-retryable failure at an image-input stage such as first_frame. Sume sets next_action to fix_input: swap the picture.
- Sume command line tool on Linux arm64: Graviton, Docker on a Mac
The Sume command line tool ships Linux arm64 and x64 binaries plus macOS arm64 and x64. Windows is x64 only. Pick the right asset for Graviton or Docker.
Written by Sume