The Six-Week Bug: A Silent Shopify Checkout Case Study
A merchant's mobile checkout silently failed for six weeks. Here's how we diagnosed it, and how to fix shopify checkout when no error fires.

The fastest way to fix shopify checkout button failures is to stop testing from your laptop. Open the store on a phone you did not configure and watch what happens at the bottom of the cart. Most silent failures live on iOS, in the bottom 80 pixels of the viewport, or in an app you uninstalled months ago.
Priya runs a small ceramics studio out of a shared workshop in Bristol. Around three thousand pieces a year, mostly mugs, the occasional small planter. She sells through her own Shopify store on the Sense theme and a Klaviyo flow she built herself. Last March she emailed us with a question that, on paper, made no sense. Mobile traffic to her store had held steady for six weeks. Mobile orders had collapsed by 78%. Desktop was fine.
What Priya had already tried
By the time she reached out, Priya had been turning the wrong knobs for almost two months. She paused her Meta ads twice. She rewrote her hero copy three times. She swapped her product photography for a darker, moodier set she was actually less happy with, because someone in a Facebook group told her her old shots looked "too commercial." None of it moved the number.
She had tested the store herself, on her own laptop, in three browsers. The "Buy now" button worked. The cart loaded. The checkout completed. She had walked through her abandoned-cart flow and seen no spike in the abandonment rate, which made the conversion drop more confusing, not less. She had even asked her sister to place a test order from a different country. It worked.
What she had not done was test from an iPhone SE, which was the most common device her actual customers were on. We know that now. She did not know it then, and Shopify's analytics do not put device-specific conversion rates anywhere a non-technical merchant is going to find them.
What Shopify Support told her
Priya opened a ticket with Shopify Support in week two of the drop. The reply she got is the reply most merchants get when checkout silently fails. Clear cache and cookies. Try incognito. Test in a different browser. The agent ran a test order from their end, completed it successfully, and closed the ticket with the suggestion that the cause was "likely a local network or browser problem on the customer's side."
That answer is technically defensible. It is also, when the problem is a UI element overlapping the buy button on a specific device class, useless. We have seen the same Support response in five separate threads on the Shopify Community forum dating back to 2022. None of those threads ended with a confirmed fix from Support. They ended with the merchant either solving it themselves or moving on.
I will be honest: a few years ago I would have given the same advice Support did. Cache clearing genuinely fixes a small slice of these cases. It just does not fix the ones where the button is physically blocked by something else on the page, and you cannot see that from a desk. The cases that actually require you to fix shopify checkout for real are the ones where the customer's screen is showing them something the merchant has never seen.
What we found in the first ten minutes
We started where the standard checklist ends: a real iPhone. Specifically a borrowed iPhone SE, because that is what 31% of her mobile sessions were on according to her Shopify Analytics device report. We loaded a product page, added to cart, scrolled.
The live chat widget Priya had installed in February was sitting directly on top of the "Buy now" button. On iOS only. Not on Android. Not on her own iPhone Pro Max, which had enough screen real estate that the widget cleared the button by maybe 15 pixels. On the SE the chat bubble was parked on the bottom-right corner exactly where iOS Safari renders the sticky buy controls. Tapping "Buy now" opened the chat window. The customer saw a "How can I help?" greeting and almost certainly closed the tab.
We sent Priya a screenshot. She replied within five minutes. "I cannot believe this." Then a minute later: "I tested on my own phone every single week."
Her own phone was the wrong phone. That is the entire shape of this kind of bug. A merchant tests on the device they built the store on, sees no error, and concludes the store works. Their customers, on different devices and slightly different OS versions, see something else. The Shopify admin reports no event for "buy button covered by chat widget." Nothing in the diagnostic flow surfaces it.
That was the obvious one. The second bug was the one that took us another hour to find.
The second bug, which was sneakier
A subset of orders, somewhere between 12% and 18%, were showing the spinning circle on the cart page indefinitely. We could not reproduce it on our first six test runs. On the seventh we got it. The trigger was specific: a customer with Priya's 10% "welcome" discount code in their cart, plus a free mug being applied through a free-gift app she had installed in January.
The free-gift app used Draft Orders to inject the gift. Most apps in that category do, because Shopify's native Buy X Get Y discount only auto-injects gifts on Shopify Plus. Below Plus, the only way an app can add a gift to a cart automatically is by creating a draft order under the hood and routing the customer through it. Draft Orders cannot stack with Shopify's native discount codes. The 10% welcome code would silently fail to apply on top of the gift, but the cart did not throw an explainable error. It just spun.
The same pattern came up in an r/shopify thread in March 2026 from a merchant running a BOGO promotion who described the exact failure mode. Two free-gift apps, both broke the discount field at checkout, both used Draft Orders. The merchant's abandoned-cart rate spiked because customers were trying to stack their welcome code with the gift, hitting the silent failure, and leaving.
For Priya, this second bug was draining the customers who had managed to get past the chat widget on iOS. The two failures stacked. The chat widget killed roughly half her mobile conversions outright. The gift-app draft-orders bug killed a meaningful slice of the survivors.
What we changed
We needed to fix shopify checkout for both failure modes at once, because removing one without the other would still leave revenue on the floor.
-
Repositioned the chat widget. Instead of fixing-bottom on every page, we set it to hide on the cart and product templates and reappear on collection and homepage. Most chat widgets have a per-page targeting rule buried two settings deep. Tidio has one. So does Crisp, which is what Priya was running. We found the toggle in under two minutes. If her widget had not had that toggle, the next move would have been to push its bottom offset above the iOS safe-area inset using one CSS rule.
-
Removed the free-gift app. Replaced it with a native Shopify Buy X Get Y "100% off" discount that combines with order discounts. This is not a perfect substitute. On non-Plus stores, Shopify will not add the gift to the cart automatically; the customer has to add it themselves. That friction is real. We made the tradeoff anyway, because forcing a customer to add a free item is a known problem that converts at maybe 60-70% of automatic injection. Silently breaking checkout converts at zero.
-
Added a real-device test to her weekly checklist. iPhone SE in Safari, Android Pixel in Chrome, both with the browser network throttled to the "Slow 4G" preset. Twice a week, ten minutes each. We sent her the recipe.
-
Set up a daily test purchase using Shopify's bogus gateway. If the script fails to complete a checkout, it pings her email. We have not yet seen the bogus gateway flag a real-world chat-widget overlap, because gateway tests run headless and the widget never renders. It does, however, flag form submission failures and 404s on Express Checkout, which is the next class of silent failure we tend to hit on these stores.
What this means for your store
If you are reading this because your conversion rate has quietly slipped and you cannot tell why, the diagnostic to run is simple. To fix shopify checkout problems that do not surface in admin, you need to test from devices your customers actually use. Not your laptop. Not your developer phone. The cheap phone in your bag from two years ago. Open the store on it. Add a product. Tap the "Buy now" button. Watch what happens around it.
Two specific things to look for. First, anything sitting on top of the button. Live chat widgets, cookie bars, floating promo bars, the new generation of AI chatbot widgets, the third-party reviews tool that decided to render its "leave a review" prompt right where buy-now lives. If any of them overlaps the button, your iOS conversion is bleeding.
Second, try a discount code with whatever automatic promotion you have running. Free-gift apps, BOGO injectors, post-purchase upsells. If your cart spinner runs more than three seconds without progressing, you have a Draft Orders or stacking conflict, and you need to know about it. The same discovery-lag dynamic shows up under different cover during bot waves; we wrote about that case in an earlier piece on what to do when bots flood your checkout.
If you have run both tests and you are still seeing the spinner, that is the kind of pattern help1's expert chat is built for. The first 15 minutes are free, which is usually plenty to fix shopify checkout failures of this shape, or at least to tell you which layer they live in.
Priya's mobile conversion rate climbed back to 1.4% over the next four weeks. The chat widget is still installed; it just no longer sits on top of the buy button on the device most of her customers are using. The free-gift promo is gone, replaced with a discount code customers actually trigger themselves. She still ships ceramics out of the same Bristol workshop. The checkout works on her customers' phones now, which is the part of the story she should not have had to invent.
Still stuck? Talk to an expert.
Our vetted Shopify experts can fix this issue for you in a live session. $39 per session. Your first 15 minutes are free.