Make takes 300 webhook requests per 10 seconds: fan in a Sume bulk run
Make returns 429 above 300 webhook requests per 10 seconds. A Sume bulk run holds up to 100 runs and has no queue webhook, so each child webhook_url fans in.

A single Sume bulk run cannot trip Make's limit on its own: it holds at most 100 Format runs and runs at most 16 at once, while Make accepts up to 300 webhook requests per 10 seconds. Trouble comes from several bulk runs finishing together, or from retries stacking on top.
Sume's bulk queue has no webhook of its own, so each child run carries its own communication.webhook_url, and that is where the fan-in happens.
The two limits side by side
| Item | Value |
|---|---|
| Make: processing rate | Up to 300 incoming webhook requests per 10 second interval; more returns 429 |
| Make: other responses | 200 when queued, 400 when the queue is full |
| Sume: runs per bulk request | 1 to 100 items |
| Sume: concurrency window | 1 to 16 child runs in flight |
| Sume: queue webhook | None; communication.webhook_url is per item |
| Sume: queue progress | GET /v1/format-run-queues/{id} with counts |
Worst case arithmetic
One bulk request of 100 runs sends at most 100 terminal webhooks, which is a third of Make's 300 per 10 seconds. Three full bulk requests landing in the same ten seconds would reach 300, and any retries or other traffic push you over. Because the window is 16 at most, runs complete in waves, so a single bulk request usually spreads its callbacks out over time rather than sending all 100 at once. That spread is my reading of the concurrency window, not a promise.
Design choices
- Send each child to the same Make webhook and carry the row id in the run input, so one scenario handles everything.
- Do not expect one callback for the whole queue. Poll the queue's status_url for overall progress and for counts.failed, because queue completed means every item is terminal, not that all succeeded.
- On a 429 from Make, Sume counts a failed attempt and retries, with backoff that obeys Retry-After, up to 10 attempts. A short burst is absorbed by that schedule. Details are in the run webhooks docs.
- Use a fresh Idempotency-Key per batch. A replayed key returns the original queue.
When 429 still appears
Fall back to polling the queue and reading each child at GET /v1/format-runs/{run_id}. A webhook is an alternative to a poll loop, never the only path. Lower concurrency if you want the callbacks spread out further.
Sources
Related posts
More in Integrations
- Make's Accepted 200: why Sume won't retry a failed scenario
Make answers 200 Accepted as soon as the webhook is queued, so Sume sees success even if the scenario later fails. Reconcile by job id and use Redeliver.
- Mattermost incoming webhook for Sume jobs: markdown, 16,383 chars
Post a Sume job result to Mattermost with an incoming webhook: text is markdown, attachments sit at top level, and posts up to 16,383 characters are supported.
- MCP agent: trim, then captions? video-captions create is not listed
On Sume's hosted MCP, video_trim is a listed tool but captions are not creatable from tools_list. Use the REST endpoint for the burn step in an agent chain.
- Sume MCP allow_write and allow_paid: accepted, not required, no bypass
Old agent prompts still send allow_write and allow_paid to Sume MCP. The server accepts both, but only the OAuth scope or an API key grants access.
Written by Sume