Subject: Custom domain aiwebcool.com returns 404 NOT_FOUND globally — edge routing entry missing (project serves fine via .vercel.app)
Hi Vercel support,
My custom domain aiwebcool.com returns 404 NOT_FOUND (X-Vercel-Error: NOT_FOUND) from Vercel's edge worldwide, despite the configuration being completely correct. The edge routing entry for the custom domain appears to be missing/broken and is not being created by any control-plane operation. I've exhausted all client-side remediation and need your help to force-refresh the edge routing.
Project: aiweb Team: annygoids-projects Custom domain: aiwebcool.com
== Configuration is correct (verified) ==
- aiwebcool.com is added to project aiweb, verified, and shows "Valid Configuration" in the dashboard (no red error, no Retry button).
vercel domains verifyreturns: configured-correctly, project.attached: true, project.verified: true, misconfigured: false.- The domain is aliased to a Ready production deployment (confirmed via
vercel inspect— aiwebcool.com is in the deployment's alias list). - DNS: Cloudflare CNAME @ -> 92f6e9970d83415e.vercel-dns-017.com., DNS-only (proxy off / grey cloud). Resolves to Vercel edge IPs.
- Only one team (annygoids-projects) and one project (aiweb) exist; no duplicate or personal-account project conflict.
== Proof the issue is custom-domain edge routing, not DNS / config / deployment / code ==
- The project's .vercel.app domain (aiweb-annygoids-projects.vercel.app) serves correctly — HTTP 302 Found from 8 worldwide test nodes (check-host.net). So the project and its deployments work.
- The custom domain aiwebcool.com returns 404 NOT_FOUND from 12 worldwide test nodes (check-host.net) — US, CA, EU, Asia, Middle East all 404. This is global, not a regional propagation issue.
curl --resolve aiwebcool.com:443:76.76.21.21 https://aiwebcool.com/(bypassing DNS and Cloudflare, SNI=aiwebcool.com, direct to a Vercel edge IP) STILL returns X-Vercel-Error: NOT_FOUND. This rules out DNS, Cloudflare, proxy, and local network — the Vercel edge itself does not route aiwebcool.com.- SSL certificate is validly issued. Verified via
openssl s_client -servername ``aiwebcool.com`` -connect 76.76.21.21:443: subject CN=aiwebcool.com, issuer Let's Encrypt (YR2), valid Jul 19 – Oct 17 2026. So this is NOT a certificate/SNI issuance problem; TLS handshake succeeds and the 404 is returned post-TLS. - The app is fully static (SSG, no server functions). There is no middleware.ts and no vercel.json with host-based logic, so the 404 cannot originate from my code. The request is dropped at the Vercel edge/gateway before reaching any deployment.
- The response is a bare 404 NOT_FOUND (79-byte plain text, edge-level), not a 3xx — so it is not a redirect/primary-domain misconfiguration.
== What I already tried (none populated the edge routing) ==
vercel deploy --prod(CLI production deploy — domain auto-aliased)vercel domains rm+vercel domains add(remove & re-add the domain)vercel alias rm+vercel alias set(re-alias to the Ready production deployment)- Git push to main to trigger a git-based production build (deployment Ready, domain auto-followed)
- DNS changes: A records <-> CNAME, Cloudflare proxy on <-> DNS-only
- Full ghost-domain reset: removed the domain from Vercel, removed the DNS records in
Cloudflare, waited 18 minutes for edge cache expiry, then re-added the domain in
Vercel first and re-added the DNS CNAME (DNS-only) afterwards.
vercel domains verifyreturned to configured-correctly, but the edge STILL returns X-Vercel-Error: NOT_FOUND viacurl --resolve.
== Conclusion == The control plane (API + dashboard) has the custom domain correctly attached, verified, and aliased to a Ready production deployment, with a valid SSL certificate. The data plane (edge routing table) has no entry for aiwebcool.com, while the .vercel.app aliases route correctly. This has persisted for ~2 hours across every re-push method and is not a propagation delay.
== Request == Could you force-refresh / recreate the edge routing entry for aiwebcool.com -> project aiweb (team annygoids-projects)?
Thank you.