Retry Failed Order Items
Queues a retry for every failed chunk of the order in one call — the bulk version of the per-chunk retry.
Useful after a transient provider outage, when many chunks failed for the same
technical reason. Chunks rejected by content policy (policy_flagged) will fail
again unless the text changes: fix those individually via
POST /orders/{order}/items/{item}/retry with a new text.
Answers 202: the plan is accepted, execution is asynchronous. The body carries
queued (chunks sent for retry) and skipped, each skip with a machine-readable
reason: superseded (a successful version already exists), active_retry_exists,
policy_flagged, max_attempts_reached, insufficient_funds. There is no
synchronous outcome — poll GET /orders/{order}/items or listen for the
bulk_retry.completed WebSocket event.
Billing: free, like the per-chunk retry — it reuses the funds already locked by each chunk and does not consume the key's token quota.
Order-level refusals come back as {success: false, message, reason}:
409 stitch_in_progress; 422 invalid_order_status (the order is not
partially_completed), generative_not_supported (sfx/music),
nothing_to_retry or retry_config_outdated (the order's settings no longer pass the
service's current schema — nothing is queued; create a new order); 503
service_maintenance (the service executing the order is paused). These refusals are
synchronous: the plan is not accepted and no bulk_retry.completed follows.
Required key permission: orders.write.
On this page(4)
Parameters
The inputs live inside the request line: fill in a value and you get a ready URL. Below are the type, whether it is required and the allowed values of every parameter.
- stringin pathrequired
Order UUID — 36 characters shaped like
9f8b2c1a-4d3e-4f5a-8b9c-0d1e2f3a4b5c, not a number.Take it from the
idfield:POST /ordersreturns it on creation andGET /orderslists it. Someone else’s order will not open with your key — you get a404.The value goes straight into the request line above.
Possible responses
202The plan was accepted and the failed chunks were queued for retry. Watch the order status.
The plan was accepted and the failed chunks were queued for retry. Watch the order status.
{
"success": true,
"message": "Failed chunks queued for retry",
"data": {
"queued_count": 2,
"queued": [
{
"item_id": "f8a9b0c1-2d3e-4f4a-8b5c-6d7e8f9a0b1c",
"chunk_index": 2
},
{
"item_id": "c1d2e3f4-5a6b-4c7d-8e9f-0a1b2c3d4e5f",
"chunk_index": 5
}
],
"skipped_count": 1,
"skipped": [
{
"item_id": "d2e3f4a5-6b7c-4d8e-8f9a-1b2c3d4e5f6a",
"chunk_index": 7,
"reason": "max_attempts_reached",
"reason_label": "The chunk has run out of retry attempts."
}
]
}
}Success flag. Branch on the HTTP status code instead: any 2xx response carries true here, while an error comes back in a different shape that need not contain this field at all.
A human-readable note in the account language. Fine to show to a user; do not parse it — the wording changes without notice and is not an error code.
datarequiredThe response payload.
object
The response payload.
How many fragments were accepted for a re-run.
What exactly was queued. Track progress on the order as a whole; there are no per-fragment events.
How many fragments could not be re-run. A non-zero value is a normal outcome, not an error: some reasons are not fixable.
The skipped fragments, each with its reason.
401The key is missing, unknown, disabled or expired.
The key is missing, unknown, disabled or expired.
{
"success": false,
"message": "API key is missing. Provide it in the X-API-KEY header.",
"data": null
}Always false in error responses.
Error text in the key's language (set through the X-Locale header).
Always null when the request is rejected before processing.
403The key lacks the required permission, or the object belongs to another user.
The key lacks the required permission, or the object belongs to another user.
{
"success": false,
"message": "This API key does not have permission to perform this action."
}Error overview.
404Not found, or not reachable with this key.
Not found, or not reachable with this key.
{
"success": false,
"message": "Resource not found."
}Error overview.
Events this produces
Progress arrives over WebSocket: polling the order in a loop is not required. Subscribing needs the same scope as reading orders.
Nearby
The same in words
Neighbouring operations
Feed this page to an AI
spec 0.0.1