Hi Vercel team,
Project: vize-danismanlik (team: maiieriks-projects)
Custom domains: yonstudent.com + www.yonstudent.com
Latest production deployment URL: https://vize-danismanlik-h6zv6x16t-maiieriks-projects.vercel.app
Both custom domains consistently return HTTP 421 with body “Forbidden host” from all regions. The canonical project URL
(vize-danismanlik-ecru.vercel.app) works correctly.
What I verified:
-
vercel domains inspect yonstudent.com → verified: true, assigned to vize-danismanlik project
-
API GET /v9/projects/{projectId}/domains → returns both domains as verified
-
DNS resolves to Vercel anycast IPs (216.198.79.65, 64.29.17.1) via Google + Cloudflare resolvers
-
NS migrated to ns1.vercel-dns.com / ns2.vercel-dns.com (also resolves correctly)
-
SSL certificate active (Let’s Encrypt CN=yonstudent.com)
-
Latest production deployment aliased to both domains (vercel alias ls confirms)
-
No firewall rules configured (GET /v1/security/firewall/config returns no active rules)
-
Multiple fresh production deploys triggered — no change
What I tried:
1. vercel domains rm + re-add (blocked because using Vercel NS)
2. vercel alias set on latest deployment (success, but 421 persists)
3. vercel deploy --prod --force (success, but 421 persists)
4. Updated NEXT_PUBLIC_SITE_URL env to https://yonstudent.com
5. Waited 1+ hours after NS migration
The “Forbidden host” body comes from the Vercel edge — Next.js itself never emits this string. This suggests the edge routing table
didn’t pick up the project binding after NS migration + multiple alias rebinds.
Please force an edge config refresh for these domains or advise next steps. Customer delivery is scheduled and the canonical URL
works, but the custom domain is required.
Thanks.