Hi Vercel team,
My Hobby team miguel-teixeiras-projects-ff6d9892 was paused around Aug 10 for exceeding the 4 CPU-hr Active CPU limit. Project brawlbeat accounted for 10h 31m (88.9%) of the usage.
Root cause. My dynamic OG image routes (/player/[tag]/opengraph-image and /club/[tag]/opengraph-image) use next/og ImageResponse. They had a route-level revalidate but no generateStaticParams, so they were fully dynamic and re-rasterized a 1200×630 PNG on every single request — 0.8s–3.3s of CPU each, never cached. Each render also self-fetched my own /api/* route over HTTP, doubling invocations.
The site gets ~210 visitors / ~497 page views per month, so this was almost entirely crawler traffic hitting an uncached, expensive route — roughly 76 seconds of CPU per human page view.
Fixes deployed (all committed and pushed):
- Added generateStaticParams to both image routes so they use the full route cache, and set revalidate = 86400. Verified locally: first request 3.3s (x-nextjs-cache: MISS), subsequent 0.005s (HIT).
- Removed the HTTP self-fetch — the routes now call a shared server-side data function directly.
- Added robots.txt rules keeping general crawlers out of /player/ and /club/, while explicitly allowing link-preview scrapers.
I understand the 30-day wait is the standard policy. Since the cause is identified and fixed, I'd be grateful if you could review for an earlier unpause. Happy to provide commit diffs or further detail.
Team: miguel-teixeiras-projects-ff6d9892
Any help much appreciated.
Regards,
Miguel