Production deployment shows Vercel platform 404 (NOT_FOUND) on all aliases,

Project: nova-home-web
Deployment ID: 5fXaqTZ2T
Commit: 2b9cce7 (branch: main)

Issue:
All aliases for this deployment return Vercel’s platform-level 404 (NOT_FOUND, request ID format sin1::xxxxx-xxxxxxx-xxxx) instead of my app’s custom not-found page. This happens on:

  • nova-new-bay.vercel.app (custom alias)
  • nova-home-web-git-main-xxxx-7119s-projects.vercel.app
  • nova-home-cievlb25d-xxxx-7119s-projects.vercel.app

Deployment status shows Ready, Latest, and Production/Current in the dashboard. Build log completes successfully with “/” prerendered as static (○).

What I’ve already checked/tried:

  • Deployment Protection is fully disabled
  • Runtime Logs are completely empty when I hit any of the URLs (no request appears to reach the function at all)
  • Redeployed without build cache — same result
  • Tried multiple aliases (custom, git-branch, and hash-based) — all return the same platform 404

This looks like a routing/edge-layer issue that isn’t reaching my Next.js app at all, rather than an application bug. Would appreciate help investigating from the platform side.


UPDATE:
CLI verification (vercel inspect nova-new-bay.vercel.app):

  • Deployment ID: dpl_5fXaqTZ2TpwVyEDPEnmbKL9L38oi
  • Status: Ready
  • Target: production
  • Alias “nova-new-bay.vercel.app” IS listed under Aliases in CLI output

This confirms the alias is correctly assigned at the control-plane/API level,
but the public URL still returns edge-level 404: NOT_FOUND. The gap appears
to be between the control plane and the edge routing layer specifically.

There’s another community post with 404 debugging tips that might be helpful. Please give these solutions a try and let us know how it goes.

A human should be around soon to offer more advice. But you can also get helpful information quickly by asking v0.

Hi Radit,

The part I’d double-check is whether the URL you’re testing is the deployment’s unique generated URL from the deployment details page, not only project/branch aliases.

A platform 404: NOT_FOUND on an alias can be an alias/routing issue. A platform 404: NOT_FOUND on the unique deployment URL is a stronger signal that the deployment is not being served correctly at the edge even though the dashboard says Ready.

I’d capture all three side by side:

curl -sSI https://nova-new-bay.vercel.app/ | egrep -i 'HTTP/|x-vercel|server|cache|age'
curl -sSI https://nova-home-web-git-main-xxxx-7119s-projects.vercel.app/ | egrep -i 'HTTP/|x-vercel|server|cache|age'
curl -sSI https://nova-home-cievlb25d-xxxx-7119s-projects.vercel.app/ | egrep -i 'HTTP/|x-vercel|server|cache|age'

vercel inspect dpl_5fXaqTZ2TpwVyEDPEnmbKL9L38oi
vercel alias ls --limit 100

If the unique deployment URL also returns Vercel’s platform NOT_FOUND, then I would not focus on Next.js routes, custom not-found.tsx, or runtime logs. Static pages may not create runtime log entries anyway. The useful evidence is the deployment ID, the exact URL tested, UTC timestamp, x-vercel-id, and the vercel inspect output showing Ready/Production/aliases.

I’d also avoid deleting or re-adding aliases repeatedly while this is being checked, because the current broken state is the clearest thing to inspect.