Silent bugs & revenue loss

The bugs costing you money are the ones you'll never hear about

Every support ticket you receive represents dozens of customers who hit the same problem and said nothing. They just left. Here's how silent JavaScript errors drain ecommerce revenue, and how to stop it.

Install free →

The silent majority

In customer service research, a common finding is that for every customer who complains, roughly 26 say nothing and simply leave. They don't escalate. They don't send an email. They don't leave a review. They just never come back. This ratio is cited in various forms across industries, but the underlying principle is universal: the customers you hear from are not representative of the customers you're losing.

In ecommerce, this dynamic is most acute when the problem is technical. A frustrated shopper who can't complete a purchase because your add-to-cart button is broken isn't going to email your support team to tell you that. They're going to check a competitor. You'll never know they were there.

What a silent bug looks like

Silent bugs are almost always JavaScript errors. PHP server errors produce obvious failure states — broken pages, 500 error screens — that users notice and sometimes report. JavaScript errors are different. They fail inside the browser, often invisibly, often only partially breaking functionality.

Consider some real patterns:

The broken add-to-cart on mobile

A theme update introduces a change to the add-to-cart JavaScript. The change works correctly on Chrome desktop and Chrome mobile. But on Safari iOS — which has a slightly different implementation of a specific Promises API — an unhandled rejection prevents the cart update from completing. The button shows no error message. It appears to do nothing. Mobile Safari users tap it, see nothing happen, and leave. Desktop conversion rate is fine. Mobile conversion rate quietly drops 8% over three weeks before anyone notices something is wrong.

The variant selection ghost

A product with multiple variants has a JavaScript-powered variant selector. For a subset of variant combinations — say, size XL in colour red — the price update script throws an error. The add-to-cart button remains active, but the price displayed is wrong (it stays at the default variant price). Some customers add to cart and are surprised at checkout. Others notice the discrepancy and don't add to cart at all. The error only fires for approximately 4% of product page views, never triggers a support ticket, and costs an estimated £800/month in abandoned orders.

The payment widget that won't load

A third-party buy-now-pay-later widget — Klarna, Afterpay, Laybuy — fails to initialise for customers on slow connections. The widget script has a race condition with another script on the page. On high-speed connections, both scripts load quickly enough that the race condition never triggers. On 3G mobile connections — which represent 25% of UK mobile traffic — the condition triggers reliably. BNPL customers on mobile see a broken payment option and either abandon or complete with a different payment method. BNPL conversion on mobile drops 40%. Revenue loss is significant. No support ticket is ever received.

The invisible checkout blocker

A Shopify Plus merchant adds custom JavaScript to their checkout.liquid for a loyalty points calculator. Three months later, Shopify updates the checkout DOM structure as part of a platform update. The custom script, which was selecting elements by class name, now targets elements that no longer exist. For customers who have accumulated loyalty points, the checkout advancement script throws an error and the “Continue to payment” button stops working. These customers — who are specifically the store's most loyal, highest-LTV customers — cannot complete their purchase. They don't email support; they try again tomorrow. Most succeed on the second attempt (after the browser cache refreshes). But 30% don't come back.

Why you don't hear about them

The psychology is straightforward. When something is obviously broken — a 404 page, a completely blank checkout — users report it because they know it's a mistake and want it fixed. But when something is subtly broken — a button that appears to work but doesn't, a form that submits but doesn't advance, a price that shows incorrectly — users often attribute the problem to themselves. “Maybe I clicked wrong.” “Maybe my internet is slow.” “I'll try again later.” They try a competitor instead.

This is compounded on mobile. Mobile users have lower patience for broken interfaces and higher rates of checkout abandonment in general. A mobile user who encounters a confusing or non-functional element almost never contacts support — they leave.

How to find silent bugs

Silent bugs are silent because they don't produce user-visible errors that get reported. But they're not actually silent — they produce JavaScript errors in the browser console that are completely invisible to you unless you're running error monitoring.

That's the entire point of error monitoring. Every JavaScript error that happens in a visitor's browser is captured, regardless of whether it produces a visible error message. Every unhandled promise rejection. Every failed network request. Every console.error from a third-party script.

The first time most merchants install Bloodhound, they find errors that have been running for weeks or months. Errors they had no idea about. Errors affecting specific devices or browsers at rates they can't explain from conversion data alone. The experience is consistently surprising — and the subsequent fix is consistently valuable.

The revenue calculation

Quantifying the cost of silent bugs requires three numbers: the error rate (percentage of sessions with the error), the affected conversion rate impact (estimated from affected session conversion rate vs unaffected), and the AOV. Bloodhound calculates this automatically using your store's conversion rate and AOV.

A store with:

  • 50,000 monthly sessions
  • 3% conversion rate
  • £75 AOV

That generates 1,500 orders per month, £112,500 in revenue. A 2% error rate affecting 1,000 sessions per month, if those sessions have 50% lower conversion due to the error, costs approximately 15 orders, approximately £1,125/month. Over a year: £13,500.

That's one error. Most stores have several. The total silent revenue loss across a typical store with no monitoring is often in the tens of thousands of pounds per year.

The fix

The fix is not complicated. Install error monitoring, look at what's running on your store, fix what's broken. The challenging part isn't the solution — it's making the invisible visible. That's what monitoring does.

Bloodhound is $0 on the free plan. It installs in five minutes. If it finds nothing, you've lost five minutes. If it finds the error that's been losing you £2,000/month since your last theme update, you've made back the cost of monitoring for the next ten years.

Find out what's silently breaking right now

Free plan. Five-minute install. No developer required.

Install free →