Vercel breaking changes, updated weekly

Every verified Vercel trap in Footgun: changes and behaviors that break code or give wrong results, newest first. Each one has the error you see, the fix, and the date it was last checked. The list updates when the weekly check adds or retires a trap. For the full cause and sources, open the trap, or see all Vercel traps.

  1. fg-0572· added 2026-10-27· last checked 2026-10-27

    A traffic spike on Vercel Pro keeps billing unless Spend Management pauses your production deployments

    Symptom

    Spend notifications arrive at 50%, 75% and 100% of your budget while the site keeps serving and billing

    Fix

    As a team Owner or Billing member, enable Spend Management, set an On-Demand Budget below the most you are willing to spend, and turn on Pause Production Deployments. Know that pausing does not stop AI Gateway or v0 usage or storage charges, and that each paused project must be resumed by hand.

  2. fg-0244· added 2026-10-15· last checked 2026-10-15

    Server-side fetch to process.env.VERCEL_URL returns 401 or the Vercel login HTML

    Symptom

    fetch(`https://${process.env.VERCEL_URL}/api/...`) returns 401 in a deployed app

    Fix

    Call your own routes with a relative path from the client, or build the URL from the incoming request origin and forward its cookie on the server. Use the bypass header only when no user request exists.

  3. fg-0246· added 2026-10-15· last checked 2026-10-15

    useChat sends a stale value in DefaultChatTransport body after React state changes

    Symptom

    Server always receives the first render value from transport body

    Fix

    Upgrade @ai-sdk/react to 3.0.223 or later on the ai 6 line, or 4.0.12 or later on the ai 7 line. On ai 5, which has no fix, pass per request data in the sendMessage options instead of the transport.

  4. fg-0248· added 2026-10-15· last checked 2026-10-15

    Vercel Function returns 504 FUNCTION_INVOCATION_TIMEOUT after 10 or 15 seconds on an older project

    Symptom

    504: GATEWAY_TIMEOUT with code FUNCTION_INVOCATION_TIMEOUT

    Fix

    Turn on Fluid compute for the project and redeploy, or set maxDuration on the function within your plan maximum.

  5. fg-0251· added 2026-10-15· last checked 2026-10-15

    Webhooks and API clients calling a Vercel preview URL get a Vercel login page instead of the function

    Symptom

    Stripe, Slack, or GitHub webhook deliveries to a preview URL fail with 401 or a redirect to vercel.com/login

    Fix

    Create a Protection Bypass for Automation secret and send it as the x-vercel-protection-bypass header, or as a query parameter for services that cannot set headers.

  6. fg-0239· added 2026-10-15· last checked 2026-10-15

    AI SDK streamText error never reaches try/catch and the chat UI only shows 'An error occurred.'

    Symptom

    An error occurred.

    Fix

    Pass onError to streamText for logging, and pass an onError formatter to the UI stream response if the client should see the reason.

  7. fg-0240· added 2026-10-15· last checked 2026-10-15

    Deploy fails with 'Hobby accounts are limited to daily cron jobs' or the daily cron fires up to an hour late

    Symptom

    Hobby accounts are limited to daily cron jobs. This cron expression would run more than once per day.

    Fix

    Keep Hobby crons to one run per day and do not depend on the minute, or move to Pro for per minute precision. For frequent jobs on Hobby, trigger the route from an external scheduler.

  8. fg-0241· added 2026-10-15· last checked 2026-10-15

    New Vercel deployments fail after October 1, 2026 because the project is still on Node.js 20

    Symptom

    Every new deployment errors while the project Node.js Version is still 20.x

    Fix

    Set engines.node to 24.x or 22.x and update the project setting, then redeploy. Use vercel project ls --update-required to find affected projects.

  9. fg-0242· added 2026-10-15· last checked 2026-10-15

    Pages cached on Vercel started returning x-vercel-cache MISS on every request after September 30, 2026

    Symptom

    x-vercel-cache: MISS on routes that used to HIT

    Fix

    Remove Cookie from Vary on routes that do not change per visitor, and set Vary only on the routes that need it.

  10. fg-0238· added 2026-10-15· last checked 2026-10-15

    AI Gateway rejects requests with 'Insufficient funds' even though a BYOK provider key is configured

    Symptom

    Insufficient funds. Please add credits to your account to continue using AI services.

    Fix

    Keep a small positive credit balance on the team, or call the provider directly for traffic that must never touch gateway credits.

  11. fg-0243· added 2026-10-15· last checked 2026-10-15

    Pushes to a private GitHub organization repo never deploy on a Vercel Hobby account

    Symptom

    No deployment is created for commits by teammates or bots

    Fix

    Move the project to a Pro team and add the committers, make the repo personal or public, or deploy from CI with the Vercel CLI and a token.

  12. fg-0245· added 2026-10-15· last checked 2026-10-15

    Upload or large JSON to a Vercel Function fails with 413 FUNCTION_PAYLOAD_TOO_LARGE

    Symptom

    413: FUNCTION_PAYLOAD_TOO_LARGE

    Fix

    Send large files straight from the browser to object storage with a presigned or client upload URL, and return only a reference from the function. Page or stream large responses.

  13. fg-0247· added 2026-10-15· last checked 2026-10-15

    Vercel cron job shows no log and does nothing because the route answers with a redirect

    Symptom

    No runtime log for the cron path at the scheduled time

    Fix

    Exclude the cron path from middleware redirects, use the exact path the router serves, and authenticate the call with the CRON_SECRET bearer header instead of a session check.

  14. fg-0249· added 2026-10-15· last checked 2026-10-15

    Vercel ignores the dashboard Build Command, Output Directory, and Node settings because vercel.json has builds

    Symptom

    Build log warns that Build and Development Settings from Project Settings will not apply because builds exists

    Fix

    Delete the builds array, move memory and maxDuration settings into functions, and replace legacy routes with rewrites, redirects, or headers.

  15. fg-0250· added 2026-10-15· last checked 2026-10-15

    Vercel never caches an API route response even though it sets Cache-Control max-age

    Symptom

    x-vercel-cache: MISS on every request to a function

    Fix

    Return s-maxage with stale-while-revalidate, or a Vercel-CDN-Cache-Control header, and make sure the route sets no cookie.

  16. fg-0252· added 2026-10-15· last checked 2026-10-15

    Work started after returning the response never finishes on Vercel (emails, logs, analytics silently dropped)

    Symptom

    A promise fired without await after sending the response never completes

    Fix

    Wrap post response work in after() on Next.js 15.1 or later, or waitUntil from @vercel/functions elsewhere, and keep it within maxDuration. Use a queue or workflow for anything long.

Have your agent check Vercel changes before it codes

$ /plugin marketplace add getfootgun/footgun
$ /plugin install footgun@footgun