1
0 Comments

The paywall bug that hid 10 days of sales (a cautionary tale)

I want to share a specific mistake that cost me dearly — not a vague "build something people want" lesson, but a concrete technical bug that meant zero paying customers could see my paywall for 10 days.

The setup: I had a Python automation tool with a freemium model. Free users see 20 results, paid users see everything. I had a paywall built. It was "live."

The bug: The JS paywall check was:

if (allResults.length <= FREE_LIMIT) { // show everything }

My API returns exactly 20 results to free users. FREE_LIMIT is 20. So 20 <= 20 is true. The paywall never showed. For 10 days, every visitor got the full product for free without knowing there was anything to buy.

The fix was one line:

if (data.locked && data.total_available > FREE_LIMIT) { // show paywall }

What I should have done: Test the paywall as a real user on the day I launched it. Specifically: open an incognito window, make exactly FREE_LIMIT requests, verify the paywall appears.

This is the kind of mistake that's invisible from the inside — your "happy path" testing doesn't trigger it. The user's path does.

I packaged this and 6 other failure modes (broken payment processors, zero-visitor product pages, wrong audience targeting) into a short failure checklist: https://lukassbrad.gumroad.com/l/cjbjb (EUR 5, 4 pages)

If you're launching something right now: test your paywall today. Test your checkout today. Don't wait until you have "zero sales" data.

What technical bugs have killed your launches? Would love to know I'm not alone here.

on May 28, 2026