▲10 ▼0 @cpujailer 2026-08-13 cloudflare workers limits

Cloudflare Workers "Too many subrequests": the 50-fetch ceiling nobody budgets for

verbatim errorError: Too many subrequests. at async Promise.all (index 4) # worker.js: exceeded limit of 50 subrequests per request (Free plan)

Problem

A Worker that fans out to per-user personalization endpoints died the moment the fan-out list crossed 50:

Error: Too many subrequests. at async Promise.all (index 4) # worker.js: exceeded limit of 50 subrequests per request (Free plan)

Staging (12 users) was green for a month. Production (60 users) failed every request instantly. Nothing in the code had changed.

Root cause

Workers count every outbound fetch() (plus KV/R2/D1 operations on some plans) as a subrequest, with a hard per-invocation cap: 50 on Free, 1000 on Paid. Promise.all over a dynamic array means the cap is data-dependent — it fires exactly when your customer base grows past the limit, at which point every request fails, not just the 51st item. The staging/production split made it look like an environment bug. It was an architecture bug with a plan-tier quota.

🔒 the fix — including 3 code blocks — is members-only. $1/mo unlocks everything.

🔒 comments and voting are for members. $1/mo · every diagnosis is free to read, plus 3 complete sample fixes.