Vercel 404 NOT_FOUND After Deploy
Ongoing Web Updated October 21, 2026
Quick answer
A sitewide 404 after a successful Vercel build usually means the wrong Framework Preset or Output Directory; 404s only on refreshed routes mean a single-page app is missing a rewrite to index.html.
Most likely fix: Test the .vercel.app URL first.
Symptoms
Build succeeds but the site shows '404: NOT_FOUND', either on every page, only on dynamic routes, only after refreshing a client-side route, or only on the custom domain.
Why it happens
- Framework Preset set to 'Other' so Vercel serves the wrong folder
- Output Directory does not match the build output
- SPA (React/Vite) without a catch-all rewrite
- Dynamic routes without dynamicParams / generateStaticParams fallback in Next.js
- Custom domain DNS pointing elsewhere
- vercel.json not committed or rewrites conflicting with next.config.js
How to fix it
Try these in order — the most common fix is first.
1. Test the .vercel.app URL first
- Open the deployment's .vercel.app URL
- If it works but your domain 404s, fix the domain DNS (see domain guide)
- If both 404, continue with build output checks
2. Fix Framework Preset and Output Directory
- Settings > Build and Deployment > Framework Settings
- Select the correct framework (e.g. Next.js, Vite)
- Make sure Output Directory matches your build folder (dist, build, out)
- Redeploy
3. Add an SPA rewrite
- Create vercel.json at the repository root
- Add: { "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }] }
- Use /((?!api/).*) as source to keep API routes working
- Commit the file and redeploy
4. Fix Next.js dynamic routes
- Set export const dynamicParams = true in the route
- Add a revalidate interval or use force-dynamic only where needed
- Add default.js for every parallel route slot
- Move rewrites from vercel.json into next.config.js
This guide also covers
- vercel 404 not found
- vercel 404 after deploy
- 404 not_found vercel
- vercel react router 404 on refresh
- vercel page not found
Still not working?
If Vercel keeps failing, you're not alone. See every Vercel problem users report or the alternatives people switch to.
Other Vercel errors
- Vercel Deployment Failed: Build Error
- Vercel FUNCTION_INVOCATION_TIMEOUT (504) Error
- Vercel Build Exceeded Memory (SIGKILL / Out of Memory)
- Vercel Environment Variables Not Working (Undefined)
- Vercel Domain Not Verifying (Invalid Configuration)
- Vercel Unexpected Bill: Why Usage Charges Spiked
- Vercel Deployment Blocked: Commit Author Does Not Have Access
- Vercel Not Deploying After Git Push
- Vercel ERR_TOO_MANY_REDIRECTS With Cloudflare
- Vercel 500 FUNCTION_INVOCATION_FAILED Error
- Vercel 413 FUNCTION_PAYLOAD_TOO_LARGE (4.5 MB Limit)
- Vercel Project Paused or Account Blocked