Sume "Generation could not start": rejected request or outage
Generation could not start is the fallback when a provider rejects a submit. A 4xx gives generation_rejected_request; anything else gives submit_failed.

"Generation could not start." is the fallback message on a Sume job whose submit to the provider failed and left no usable provider sentence. If the provider answered with a 4xx, public_reason is generation_rejected_request and next_action is fix_input; for anything else it is generation_submit_failed, with retry_later or contact_support.
The stage on these errors is generation_submit, which tells you the provider never accepted the work. Compare that with "Generation failed.", the fallback for a job that was already running.
How a submit failure is classified
The stored code is provider_submission_failed. If no retryable flag is stored, it defaults to retryable unless the provider status is 4xx.
The message is the provider's rejection sentence after masking and the 300-character cap when one survives, and "Generation could not start." when it does not. Masking is explained in the redacted URL post.
| Situation | category | public_reason | retryable | next_action |
|---|---|---|---|---|
| Provider 4xx with content-policy wording | generation_rejected | content_policy_rejected | false | fix_input |
| Provider 4xx, any other reason | generation_rejected | generation_rejected_request | false | fix_input |
| Provider 5xx | generation_unavailable | generation_submit_failed | true | retry_later |
| No HTTP status | generation_unavailable | generation_submit_failed | true | retry_later |
| 5xx with stored retryable false | generation_unavailable | generation_submit_failed | false | contact_support |
Other submit-stage codes
Three more stored codes appear at the same stage and have their own answers.
invalid_provider_inputreads "Invalid generation input.", with categoryvalidation,public_reason: invalid_inputandnext_action: fix_input. The same mapping covers a storedinvalid_request.provider_not_configuredreads "Generation runtime is not configured for this environment.", withpublic_reason: generation_runtime_unavailableandnext_action: contact_support. It is not retryable.provider_capacity_exceededis retryable, withpublic_reason: generation_capacity_exhaustedandnext_action: retry_later; the 503 side is in the 503 codes post.
What to do with each answer
The three public fields are enough to choose.
Both submit-time refusals and running-job failures also show in GET /v1/jobs/{id}/events, so the timeline settles which side of the provider boundary the failure was on. The longer retry guidance is in which job errors to retry, and the error envelope itself is described on Errors and rate limits.
fix_input: readdetails.provider_error_message, change the request, and submit a new job. Resending the same body repeats the refusal.retry_later: wait forretry_after_secondswhen it is present, otherwise back off, then submit again. Reuse theIdempotency-Keyonly for an exact retry of the same body.contact_support: stop retrying and send the job id and the request id from the response headers.
Sources
Related posts
More in Developers
- Sume job error details.input_field: the parameter that failed
When a provider rejects one request field, Sume publishes its name as details.input_field beside provider_error_message. Map it back to your body and fix it.
- 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.
- 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.
Written by Sume