The Bug Only One Customer Could See

A night-time apartment block with a grid of identical dark blue windows and a single window glowing electric coral-magenta, its light reflected as one streak on the wet street below.

The email from the shop owner was short. A customer had written in, fairly cross, saying checkout was broken. They’d tried four times. Card details in, press Place order, a red message at the top, nothing else. Could I have a look?

I had a look. Checkout worked. The shop owner had already had a look too, and it worked for them. Orders had come in that morning, the afternoon before, and the day before that. By every measure I had in front of me, the shop was fine.

Except one person had tried to give this shop money four times and failed. That isn’t fine. That’s just unexplained.

A WooCommerce checkout not working for one customer, and working for everyone else, is one of the more awkward reports a shop owner can get. Here’s how I chase it.

Why “works for me” is a trap

“I can’t reproduce it” is an honest sentence. “It works for me” usually isn’t, not because anyone’s lying but because of what it quietly implies: the problem is at their end.

Sometimes it is. Plenty of the time it isn’t. And when you test your own shop, you’re the least typical customer it has. You’re logged in as an admin, on a decent connection and an up-to-date browser, and you’ve visited the site a thousand times. Most caching plugins skip logged-in admins entirely, so you may not even be seeing the same pages your customers see.

The other trap is the maths. For every customer who emails to say checkout is broken, there are usually a few more who hit the same wall and went off to buy from someone else. The one who complains is the one who cared enough to tell you. I treat that email as a sample, not an outlier.

How I chase it without blaming the customer

The first job is getting enough detail without making the customer feel interrogated. Nobody enjoys being asked “have you tried clearing your cache?” as if they’ve done something wrong. So I ask the shop owner to send a short, friendly note framed as “help us find it” rather than “prove it”. Then I work through the same list every time.

Device and browser

Phone or computer, which browser, roughly which version. A work laptop matters too: managed machines often have stricter security settings, older browsers, or extensions the person never installed themselves.

Cache

There are several layers: the browser’s own cache, the site’s page cache, and any CDN sitting in front of it. I check what the cart, checkout and My Account pages are actually telling browsers to do. Those pages should never be cached, and “should” is doing a lot of work in that sentence.

Cookies and sessions

WooCommerce leans on cookies to know whose basket is whose. Privacy extensions, strict browser modes and old sessions all change how it behaves. A customer who left a tab open since last Tuesday is having a different experience from one who arrived five minutes ago.

Customer account

Are they logged in or checking out as a guest? Do they have a saved address, an old subscription, or a role that a plugin treats differently? I’d rather create a test account that mirrors theirs as closely as I can than keep testing as myself.

Payment method

Which gateway, card or wallet, and did the payment provider see the attempt at all? The gateway dashboard is often the most honest witness. If no attempt was logged, the problem happened before the money ever left the shop.

Country and tax

Billing and shipping country change tax, shipping methods, and sometimes which payment options appear. An address outside the UK can take a completely different route through checkout from the one the shop owner tests every day.

Plugins and recent changes

What changed lately? An update, a new plugin, a “quick performance tweak”. I look at the logs around the time the customer actually tried, not just at errors in general.

What it turned out to be

The answers came back as: work laptop, desktop browser, logged into their account. And one throwaway detail: they’d started the order the evening before, gone to bed, and come back to the same tab the next morning.

That was the one that mattered. A few weeks earlier, a performance setting had been switched on that told browsers they could hang on to pages, checkout included, for days. Most customers never noticed, because they arrived fresh. This customer’s browser served its own copy of the checkout page from the night before, complete with a security token that had since expired. Every time they pressed Place order, WooCommerce quite rightly refused it. The page looked perfectly normal, so there was no reason for them to think of refreshing it.

To the customer, it was a broken shop. To everyone testing from a fresh page, it was perfect.

The fix was small: correct the settings so cart, checkout and My Account are never cached by the browser or anything in between. The more useful part came next. I went back through the logs looking for the same failure, and it wasn’t one customer. There was a small cluster of abandoned checkouts over those few weeks with the same pattern. One person emailed. The others just left.

When I’ll honestly say the shop is fine

I’m happy to tell a shop owner everything is fine. I just want to have earned it first. For me that means at least one of these is true:

  • I’ve reproduced the problem, fixed it, and tested again in the conditions the customer had.
  • I’ve found the customer’s attempt in the logs or the gateway, the cause sits genuinely outside the shop (their bank declining the card, say), and I can explain it specifically.
  • I’ve checked whether anyone else hit the same thing, and they haven’t.

“I couldn’t make it happen” on its own isn’t on that list. That’s where the investigation starts, not where it ends.

Even when the cause really is on the customer’s side, I want the shop owner to reply with something useful rather than “works for us”. A plain explanation and a clear next step keeps the customer, and quite often the sale.

Got a bug only “someone” can see?

If customers are reporting problems you can’t reproduce, and you’d like someone to chase them down properly before anyone declares the shop fine, that’s work I genuinely enjoy. Have a look at how I work with WooCommerce shop owners and get in touch.

Written by Connie, an AI, from Neil Matthews’ notes, archive, and direction. Neil directed and edited this piece. He did not write these words. Augmented publishing by Neil Matthews.

Get A No Obligation Quote

Do You Need Help With Your WooCommerce Site?

Click through to the next page and complete the form to get a free no obligation quote to fix any issue you are having with your WooCommerce site.