The day my blog "broke" and a Vercel bot helped me solve it

A sudden SSL_ERROR on my site sent me down a two-hour DNS rabbit hole across Cloudflare, Netlify, and Vercel — until a Vercel bot nudged me toward the real cause.

A friend messaged me this morning saying he couldn't read a post on my blog. I figured it was something at his end — maybe his network, maybe he'd clicked an old link. I went about my morning routine, coffee, the usual, and sat down at my machine around 9 am to take a look.

I pulled up jjude.com. He was right. I saw the error message: "This site can't provide a secure connection." Huh.

I pasted the screenshot to Claude and asked it to debug. First thing it told me:

Try on mobile data instead of wifi (or vice versa) — ERR_SSL_PROTOCOL_ERROR is often a network/ISP-level TLS interception issue.

Fair enough, reasonable first guess. Except it had all worked fine the day before. Nothing changed. I hadn't touched DNS, hadn't touched Netlify, hadn't deployed anything unusual. So now I was confused.

I expected it to be 10-15 minutes of debugging and fixing. It wasn't the pleasant thing to do on a Monday morning, but it was a priority. So I decided to just go fix it before doing anything else.

What I expected to be a short debugging session turned into a two-hour rabbit hole.

Claude asked me to run curl -vI jjude.com. I ran curl -vI against the site. TLS handshake failing right after the client hello — connection just getting reset. Tried it on wifi, tried it on mobile data, same failure both times. That ruled out "it's just your wifi." I went digging through Cloudflare — SSL/TLS mode, page rules, edge certificates. Found a certificate stuck in "Pending Validation" there, which felt promising for about ten minutes until I remembered Cloudflare wasn't even proxying my apex domain. It was sitting there DNS-only, out of the request path entirely. A real issue, just not my issue.

So I went to Netlify, where the site's actually hosted. And that's where it got stranger. Both domains (jjude.com and www.jjude.com) were now stuck on "Pending DNS verification." Netlify was telling me, essentially, "this domain doesn't appear to be served by us," which made no sense because the DNS records were pointing exactly where they should.

At this point I did what any reasonable person having a slowly-deteriorating morning does: I decided to just move the whole thing to Vercel. I already had a couple of subdomains running there happily, 11ty deploys cleanly on it, and I was tired of fighting Netlify. Connected the repo, build worked on the first try. Felt good. For about four minutes.

Then Vercel showed me this:

This domain is linked to another Vercel account. To use it with this project, add a TXT record at _vercel.jjude.com to verify ownership. You can remove it after verification completes.

Sure, fine. Added the TXT record. Waited. Refreshed. Same message. I deleted everything and started over. Same message again. I checked the DNS propagation on one of those public checker sites — saw it resolving correctly from San Francisco at one point, checked again ten minutes later, gone. Records seemingly un-propagating, which shouldn't really happen once something's live and stable.

Two hours in, humbled and mildly annoyed, I gave up trying to out-debug it myself and opened Vercel's own help chat.

It started predictably — asked me to check my DNS records, the same first move every support bot makes. In my frustration I just exported my entire Cloudflare DNS zone and pasted the whole thing at it, basically saying "here, you figure it out."

And it did. It came back and said "something interesting" — that my nameservers weren't actually pointing to Cloudflare anymore.

That one sentence sent me straight to my domain registrar. And there it was, sitting in plain sight the whole time: jjude.com had expired the day before, and I hadn't renewed it.

Turns out the SSL error was never really about SSL. My domain had expired, and everything downstream — Cloudflare, Netlify, Vercel — was just failing in its own weird way because of that. Two hours of certificates, TXT records, curl handshakes, and flipping primary domains, and the actual problem was that I'd simply forgotten to renew a domain.

Renewed the domain. Within minutes, everything came back online.

So that was my morning. A blog that's been quietly running the same way for years, broken by the most boring possible cause, disguised for two hours as five different exotic technical problems, and finally cracked open by an AI support bot casually saying "something interesting" in the middle of a DNS export I'd dumped on it out of sheer frustration.

Lessons learned: turn on auto-renew; AI helpdesk bots are getting better at debugging.

Published On:
Under: #aieconomy , #tech