Summary
After each production deployment that re-points our custom domain, our-domain.com and www.our-domain.com stop serving TLS entirely for roughly 15-20 minutes. The edge accepts the TCP connection, then resets without sending a certificate. Plain HTTP on port 80 keeps working correctly the whole time, and the deployment's vercel.app URL is unaffected. This has now happened twice, both times immediately following a production alias change.
Environment: Team ID team_MtK7DZ6ep8LOJMR7BKxQUjxA; Project ID prj_c0s3rmIcErD18ED4EfFZXDXYb1bb; Domains our-domain.com (308 redirect to www) and www.our-domain.com; DNS is external, using GoDaddy nameservers; Framework Next.js (App Router), Node 24.x.
Symptom: curl against https://www.our-domain.com/login returns curl error 35, Recv failure, Connection was reset. openssl s_client against our domain on port 443 shows no peer certificate available, SSL handshake has read 0 bytes and written 1560 bytes. Meanwhile, in the same minute, curl against our vercel.app URL returns 200, and curl against the plain http version of our domain returns a 308 redirect to the https www URL. TCP to port 443 connects successfully (TcpTestSucceeded true). The failure is specifically that the edge sends 0 bytes and resets after the ClientHello.
Why this looks like a platform issue: Certificates exist and are valid, none expired, all set to auto-renew. The domains are attached and verified (verified true, misconfigured false, no conflicts). The deployment is healthy: deployment ID dpl_uDN9XFaBds7EoeFK37K4dWbbRnWo, readyState READY, readySubstate PROMOTED, aliasError null. A sibling domain on the same edge IPs, sibling-domain.com and a subdomain of it (same team, same anycast IPs, also external GoDaddy DNS), serves TLS perfectly throughout the outage. Forcing our SNI to every Vercel edge IP we could resolve reproduced the reset on all of them, so it looks SNI or domain specific rather than an unhealthy edge node. We reproduced this from two independent networks, ruling out local filtering. New certificate issuance succeeds (POST to the certs API returns 200), so the certificate simply is not being served by the edge.
Timeline: Incident 1 on 2026-07-20, the domain had been live and serving TLS after initial setup on 2026-07-19, then went down with the signature above. Re-issuing certs and re-verifying had no immediate effect. Detaching and re-adding both domains eventually set configVerifiedAt and TLS recovered roughly 15-20 minutes later. Incident 2 on 2026-07-21 (current), at 12:33:07Z we merged a PR to main, triggering the first git-driven production deploy (same deployment ID as above, aliasAssigned 1784637218431). TLS began resetting again immediately after the alias was assigned. This time configVerifiedAt was already set and unchanged, and no configuration was modified by us. Still down as of 12:41Z. The common factor across both incidents is a production alias change, not any config edit on our side.
Questions: Why does the edge fail to serve an existing, valid certificate for this domain after a production alias change, while a sibling domain on the same IPs is unaffected? Is this expected behavior for domains whose DNS points at vercel-dns-016.com targets, or is the cert-to-edge binding getting stuck? Is there anything about this domain's record (external GoDaddy nameservers) that makes it susceptible, and would moving DNS to Vercel nameservers avoid it? Is there a supported way to deploy without incurring this TLS gap?
A roughly 15-20 minute HTTPS outage on every production deploy is not viable, we are about to onboard pilot customers. Happy to provide additional logs, run diagnostics on request, or leave the domain in its failed state for inspection if that helps.
Note: I went through Vercel's in-app support assistant first, which analyzed the domain and certificate configuration, agreed this doesn't look like a configuration issue on our end, and pointed me here to Community since direct support cases for Domains and SSL aren't available on the Hobby plan. Domain names above have been replaced with placeholders for privacy; happy to share the real ones with a Vercel team member via DM if needed to investigate.