By Shyam Verma·

We Thought AI Was Killing Our SaaS. It Was a Dead CDN.

We Thought AI Was Killing Our SaaS. It Was a Dead CDN.

How a silently abandoned CDN broke our checkout in the US for nine weeks, and how we almost gave up on the product because of it.

New subscribers stopped coming. Not slowly, they just stopped.

I run a few SaaS products with my co-founder. I am not naming which product this happened to, it does not matter for the story. Everything I claim below you can verify from your own terminal, sources are at the end.

We debated everything

My co-founder and I did what founders do. We debated pricing, positioning, SEO, a Google update, everything we could think of. And then the big one, the reason which felt very true in 2026, that we are losing to AI. Google understands content without our category of tool now. People ask ChatGPT instead of searching. Maybe our whole niche has 4-5 years left, maybe less.

The debates got heavier. One day he messaged me "What do we do about this product?" We seriously discussed pivoting into a full WordPress plugin and fighting the established players head on. We discussed a full rewrite of the product's core assumptions. Then the question every struggling founder knows, is it worth the effort? We watched a competitor in an adjacent space exploding with growth while our numbers were fading, and we could not explain the difference. His words from that thread stuck with me, "no effort = no defensibility". But effort towards what? Every theory was plausible but none was provable.

Losing hope

At some point we lost hope, I will be honest about that. We stopped looking into the product for two months straight. There was nothing to fix, no error anywhere, not a single customer complaint. You cannot fight something which leaves no trace. So we quietly accepted that the business is fading and the market has moved on.

The lucky break

Then another SaaS of my partner got hit. Same kind of sudden drop but sharper, and that product had client-side error tracking. It caught the reason within days. The FastSpring checkout script was loading from a CDN which FastSpring had silently abandoned. The buy button was throwing fastspring is not defined in the visitor's browser console and doing nothing. No request was ever reaching our servers, so from our side everything looked healthy.

We checked our SaaS. Same script URL, same dead CDN.

Broken only in the US

Now the part which still messes with my head. It was broken only in the US. The old CDN decayed region by region. European edges kept serving a cached working copy while US edges rotted. The US is around two thirds of our subscriptions. And from where do we test? Europe. Every time we clicked the buy button ourselves it worked. Our last US sale was in late May, then nine weeks of zero, while US traffic on our pricing page stayed normal and our own testing kept telling us everything is fine.

So for two months we were debating pivots, rewrites, whether our market even exists, on numbers which were secretly corrupted by a dead buy button. We kept asking why nobody wants the product, when the truth was nobody in our biggest market was able to buy it.

It was not AI, it was not the market. It was one script tag from 2023 pointing to a URL which the vendor walked away from without a word. The fix was one line.

The lessons

Two lessons, and they cost me enough that I will actually follow them.

1. Track errors on the client side. Server logs are blind to the worst failures. If a third party script dies in the visitor's browser, nothing on your side will ever mention it. The silence looks exactly like health.

2. Don't trust any hypothesis without proof. We "knew" we are losing to AI. It fit the mood of the moment so we never demanded evidence for it. The real cause was boring and deterministic, waiting for anyone to slice the sales by country. We never did, because we never thought to ask.

And a third one I am still chewing on. Before taking existential decisions about your product, verify your instruments first. A pilot does not crash land because one gauge is showing zero. We nearly did.

Check everything yourself

Every check below was run on 3 August 2026. This URL's contents have changed before and will change again, so run them yourself rather than trusting my output.

The dead URL: https://d1f8f9xcsvx3ha.cloudfront.net/sbl/0.8.9/fastspring-builder.min.js. This was FastSpring's legacy SBL CDN. Run curl -sI on it and read the server: header.

curl -sI https://d1f8f9xcsvx3ha.cloudfront.net/sbl/0.8.9/fastspring-builder.min.js | grep -i server
# server: GitHub.com

The domain's origin is not FastSpring anymore. It resolves to a GitHub Pages repo behind Fastly, and it still returns HTTP 200. Right now it even serves a file which looks like a working build, which is the scary part rather than the broken part. Look closer and the file served from the 0.8.9 path announces itself as /*! fastspring-builder 0.8.2 */, a different version from the one you asked for. Whoever controls that unknown GitHub repo controls the checkout javascript of every site still loading from it.

The canonical URL which FastSpring actually maintains is https://sbl.onfastspring.com/sbl/1.0.3/fastspring-builder.min.js. The same curl test gives server: AmazonS3.

A few more things you can check:

  • History of the file: the Wayback Machine has captures since 2022, you can see it was a normal FastSpring file back then.
  • Want to test from the US specifically? globalping.io runs the request from real US probes for free. I did it while writing this post, 200 with server: GitHub.com from Buffalo, LA and Spokane.
  • FastSpring's own examples site still teaches the dead domain today, with no deprecation notice anywhere. View source and search for d1f8f9xcsvx3ha.
  • Around 2,300 files on GitHub still reference the dead domain, including live looking payment integrations. Code search needs a GitHub login. If one of them is yours, your checkout may be dead in some region right now and your logs will never tell you.
  • We are not the only ones bitten. Here is an unrelated project which hit the same dead CDN in June and switched to the canonical URL.
  • Our numbers. Around 7 US subscriptions per month baseline, then June 0, July 0, traffic normal throughout. Fix deployed on 1 August. One line.

If you sell online, check where your payment script actually loads from, and test your checkout from your biggest market, not from your desk.

Comments

Interested in Collaborating?

Whether it's a startup idea, a technical challenge, or a potential partnership—let's have a conversation.

20+
Years Experience
150K+
Websites Powered
2
Successful Exits
7x
Faster with AI