Workflows instance limits vs Sume queue headroom: which binds?
Cloudflare lists 50,000 concurrent Workflow instances (Paid, April entry). Sume reports your own generation headroom; size fan-out by that formula.

The Sume limit is the one to size against: Cloudflare lists 50,000 concurrent Workflows instances, while Sume reports your own concurrency_limit and queue_capacity_remaining in the admission snapshot, and the docs' plan table runs from 1 to 20 concurrent jobs. Size fan-out from the Sume numbers.
Sume behavior is from the Generation admission docs; the Cloudflare limits are from an April 15, 2026 changelog entry, read 2026-09-30.
What are the Workflows limits?
The April 15, 2026 changelog table, for the Workers Paid plan, lists concurrent instances at 50,000 (previously 10,000), instance creation at 300 per second per account (previously 100), and 2 million queued instances per Workflow (previously 1 million). These figures are from that April entry and may have changed since.
| Limit | Cloudflare Workflows | Sume docs example |
|---|---|---|
| Running in parallel | 50,000 instances | concurrency_limit 100 |
| Waiting | 2 million queued | queued_jobs_limit 500 |
| Accepted in total | Not in the entry read | queue_capacity_remaining 600 |
| Submission-wave hint | Not in the entry read | wave_size_hint 450, a hint only |
How many jobs can I have in flight?
The docs give the budget as max(0, concurrency_limit - active_generation_jobs - queued_generation_jobs), capped by queue_capacity_remaining. Count each job you submit against it until the next snapshot. wave_size_hint is only a submission-wave hint and is never a concurrency limit.
What happens when I go over?
Full concurrency only leaves accepted jobs in queued. Running out of queue room is the separate 429 queue_full. For queue_full, wait for jobs to finish or cancel queued ones, then retry with the same idempotency key. For 429 rate_limited, back off using retry-after when present. Do not resubmit a job that is merely queued.
Where does the snapshot come from?
It is the generation_limits object that generation submit responses include when Sume can compute it, described on the generation admission page. The counts are a snapshot and can change right after the response, so refresh before each wave rather than caching for a run.
Sources
Related posts
More in Developers
- Workflows .subscribe() vs Sume job events: push or pull?
Cloudflare Workflows can stream instance events with subscribe(). Sume has no SSE stream for jobs: use a signed webhook, or poll status and the events snapshot.
- Codex disabled_tools: block Sume's paid MCP tools
List Sume's paid tool ids under disabled_tools in the Codex config.toml so the agent cannot call them, even on an API-key session that sees every tool.
- Codex MCP enabled = false: pause the Sume server safely
Turn the Sume server off in Codex with enabled = false instead of deleting it, and rotate the API key if it ever showed up in logs or chat.
- Codex mcp_oauth_callback_port and the Sume OAuth login
Pin the Codex OAuth callback port for a remote Sume MCP login, and how the login flows from Codex to the Sume consent page on mcp.sume.com.
Written by Sume