Re-run only the failed rows of a Black Friday bulk queue

One row of a Sume bulk queue failed? Send only the failed rows as a new queue with a new idempotency key. The old key replays the old queue and starts nothing.

4 min readSume
All posts

To redo the failed rows of a Sume bulk queue, collect the item indexes whose status is failed, map them back to your own rows, and send those rows as a new bulk create with a new Idempotency-Key. If you send the old key with the old body, you get 202 and the old queue back, and nothing new starts.

The queue fields and the replay rule come from Bulk runs (read 2026-10-06). The docs list no endpoint to add an item to a queue or to cancel a queue, only the per-run cancel, so a fix goes into a new queue.

How do I find the failed rows?

items[] on the queue object keeps the order you submitted, and each entry has a zero-based index. That index is your row number in the batch you sent, so keep the array you posted next to the queue id.

  • Filter items for status equal to failed.
  • Read the child receipt for each one with a run_id, to see whether the cause is the row or the Format.
  • Skip canceled items unless you canceled them by mistake.

What goes in the new queue?

The same item bodies, after you fix the cause. A new key means a new queue and new billable runs, so check the reason first. A row that failed on a bad input fails again.

Redo choices for a failed item (read 2026-10-06)
SituationAction
Row had a bad inputFix it, send in a new queue with a new key
Child failed to start (run_id null)Read the item error, then resend the row
Row was fine, run failedResend with a new key, or revise with previous_run_id
You canceled the itemResend only if you still want it

How do I keep the two queues apart?

Label both batches in your own sheet with the queue id and the key. There is no list-queues endpoint, so a lost queue id is hard to recover. Using the same key on the same Format and the same body returns the original queue.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume