What happened A small newsletter campaign was sent to 13 subscribers. The result came back in a strangely neat shape: 5 accepted, 8 failed. At first glance, that looks like a hidden provider cap. Maybe the free tier only allows five recipients. Maybe the campaign endpoint has a quiet limit. Maybe something is wrong with the subscriber list after the first few addresses. The number felt meaningful, and it was. Just not in the way it first appeared. Root cause The code was batching conceptually, but not at the HTTP request level. It sliced subscribers into a "batch" and then used Promise.all() to send one request per recipient inside that batch. So 13 subscribers still became 13 simultaneous API calls. The email provider had a default request-rate limit. The first few requests were accepted, and the rest crossed the throttle. The UI then surfaced the result as "5 sent, 8 failed", which made the failure look like a recipient limit instead of a request-rate problem.…