Agents are pressing Vercel's deploy button 116 times a second
Guillermo Rauch put daily deployments at 10 million and blamed agentic traffic; the same day's engineering post shows the fix was aimed at the cold path, not the median.

A deployment used to be a decision somebody made. Now it is a side effect of a loop.
Guillermo Rauch said on 10 September 2026 that about 10 million deployments are made on Vercel every day, and 2.35 billion in total since the platform started. Do the division. That is 116 a second, and it means Vercel's entire historical deployment count would be recreated in eight months at the current rate.
Rauch names the cause himself, in a clause most people scrolled past: all of this is happening "while the system is under immense pressure from the growth in agentic deployments". If you ship on Vercel, you are probably no longer the thing generating most of that traffic.
So what does a platform do when the button is being pressed by a program?
The answer is in the engineering post, not the milestone
Every request to Vercel passes through a CDN that executes, on average, more than 80 million routing instructions a second. Part of that work is looking up which paths exist and how to serve them. Vercel used to store that metadata as a separate object per path, fetched and cached on its own — fine for a small site that deploys twice a month, and quietly terrible for a large one that deploys constantly, because every new deployment mints a fresh set of cache keys and the first lookup for each path misses.
That is the agent tax, stated precisely. Agents do not make your site bigger. They make it redeploy before the cache is warm.
The fix is a good piece of plumbing. Vercel grouped path metadata into bounded shards of roughly 200 KB, each holding sorted key-value records with an inline index of fixed-width pointers, so the routing process can binary-search the encoded paths and then parse only the line it needs. One fetch warms many paths. The team tried multi-megabyte shards first, found the per-process cache missed too often because requests scatter across many processes in a region, and came back down.
The median never moved, and that is the finding
| Path metadata lookup | Before | After |
|---|---|---|
| P99 latency | 215.8 ms | 19.1 ms |
| Standard deviation | 44.9 ms | 19.0 ms |
| Average latency | 8.59 ms | 1.81 ms |
| Median latency | ~0.7 ms | ~0.7 ms |
Measured on production traffic, 5–12 August 2026. Most requests were always fast; the tail was the whole problem.
So this was never a speed project. It was a variance project, and the standard deviation falling by more than half is the honest headline. The nasty requests were the cold ones, and cold is what a deploy-every-minute workload produces.
Pricing built for a human rhythm is the thing that breaks
The ten-million figure is a load statistic dressed as a growth statistic, and the companies that feel it first are the platforms whose pricing assumes a person. Build minutes, preview environments, seat-based plans — all priced when a deploy meant somebody had finished something. Vercel's own answer so far is to make the cold path cheap rather than to reprice it, and while it was in there the team took about sixteen seconds out of the deploy pipeline, roughly a tenth of that step and closer to a quarter for metadata-heavy projects.
We would expect at least one major CI or preview-environment vendor to introduce explicit agent-rate pricing before the end of the first quarter of 2027. If instead the industry absorbs it quietly, the marginal cost of a deployment is lower than we think, and we would want to see someone's margins to believe it.
One caveat, and it matters. "Deployment" is Vercel's own word, counted by Vercel, with no definition published. Preview deployments on every push are almost certainly in there, which is exactly where agent traffic lives. The number is real and the denominator is unstated.
The detail we enjoyed most is buried in the rollout. Running both lookup paths side by side for weeks turned up a single disagreement: an old encoding packed paths into RFC 2047 encoded words, and it broke when an emoji was split across two of them. Somewhere there is a URL with a cat face in it that has been quietly wrong for years, and nobody noticed until a migration went looking.



