Troubleshooting a missing Recharge subscription widget
A missing subscription option does not automatically mean checkout is broken. Start by checking which products and variants should offer a subscription, then compare the affected page with a known working example. The rest of this guide walks through that, from establishing scope to writing a support report — without guessing at a cause.
First, establish the scope
Before assuming the widget is broken, work out how widely the problem shows up. The answer changes what you look at next.
- One product, or many? Open a second product that you know is set up for subscriptions. If the option shows there, the issue is likely configuration on the affected product, not the app across the store.
- One variant, or all of them? Some products only offer a subscription on specific variants. Switch through the variants on the affected product and watch whether the subscription option appears or disappears.
- One device or viewport, or every session? Reload the page in a private/incognito window, then on a second device or a narrow mobile viewport. A problem that only appears in one browser session behaves differently from one every visitor sees.
- One page template, or all of them? If some products use a page-builder or custom template, note whether the affected page is one of those. A custom template can render the buy box differently from your theme default.
Write the answers down. "Missing on one variant of one product, in every browser" and "missing on every product for me only" point at very different things.
Verify the product is meant to offer a subscription
A widget that never appears is often a product that was never configured for subscriptions, or a variant that is not eligible — not a broken script. Confirm the intended setup before treating this as breakage:
- Check whether the affected product and variant are actually supposed to offer a subscription plan. If you are unsure, compare against a product you know is set up correctly.
- In your browser, open the store's
/products/<handle>.jsor/cart.jsJSON in a tab and look at whether selling-plan data is present for the variant. If no selling plan is attached to the variant, the storefront has nothing to render — the fix is configuration, not the widget. - Confirm the option is missing for a real shopper, not just for you: an unpublished plan or an audience/segment rule can hide the option in some sessions.
Only after you have confirmed the variant should offer a subscription does a truly missing widget point at a display or script problem.
Separate a display problem from a cart-state problem
"The widget is missing" and "I picked a subscription but it did not carry into the cart" are different failures with different evidence:
- Display problem: the subscribe/one-time control does not render, or renders but is visually hidden, overlapped or pushed off-screen. Compare the rendered page against a working product side by side, and check the same page on a narrow mobile viewport where layout is tightest.
- Cart-state problem: the control renders and you can select a plan, but after Add to Cart the item is missing, is added as a one-time purchase, or the selling plan is not attached. Open
/cart.jsin your browser right after adding the item and read what is actually in the cart — this shows the real state rather than what the drawer displays.
Recording which of these you are seeing saves a support agent from having to reproduce it blind.
Capture browser console errors
If the control should render but does not, open your browser's developer tools (usually F12), go to the Console tab, then reload the affected product page. A script error thrown while the page is building can stop the subscription control from rendering.
- Note the exact error text and the file it points to. An error naming a Recharge, theme or other app script is a lead — but a console error is an observation, not proof of the cause.
- Check the Network tab for a request that failed to load (shown in red). A blocked or 4xx/5xx script request can be the reason a widget never appears.
- Reproduce with the same steps in an incognito window with extensions disabled, so a browser extension is not creating a false error.
Check what changed recently
A widget that worked yesterday and not today usually follows a change. Look at recent changes you can actually verify:
- Theme edits. The Shopify theme editor keeps version history — check whether the theme was edited or a new version was published around when the problem started.
- App updates or config changes. A storefront script changing is an observation, not proof a release caused the failure. Note the timing; do not assume causation.
- Product/plan changes. A selling plan being unpublished, or a variant being added without a plan, can remove the option without anyone touching code.
Do not fix this by editing a live theme blindly or by uninstalling the app to "test". Reproduce and document first; make changes on an unpublished theme copy where you can.
Assemble a support report
If you need to escalate to Recharge support, your own developer, or the theme author, a tight report gets a faster answer than "the widget is gone". Include:
- The affected product URL and the specific variant.
- A working example (a product/variant where the option does appear), if you have one.
- Browser and viewport where you reproduced it (desktop and/or mobile width), and whether it reproduces in incognito.
- Whether the item is a display problem or a cart-state problem, with a
/cart.jssnippet if the cart is involved. - Any console/network errors, copied verbatim.
- Recent theme or app changes and their approximate timing.
Re-verify after any change
After a fix — a plan re-published, a theme change, an app setting corrected — repeat your original reproduction exactly: same product, same variant, same viewport, in a fresh incognito session so you are not seeing a cached page. Confirm both that the widget renders and that a selected subscription carries into the cart via /cart.js.
Monitoring the subscribe flow after you have fixed it
Once the subscribe path works, the harder problem is knowing if it breaks again after the next theme or app change. Checkout monitoring runs the subscribe path on a schedule on desktop and mobile browser viewports — select a plan, add to cart, reach checkout — and alerts your team with video evidence when a run fails, so you find out from a check rather than from a customer.
An important boundary: this covers the initial subscription purchase — that a shopper can choose a plan and reach checkout. It does not verify recurring billing. Revenue Shield does not test renewals, and its checks stop before payment, so no order is placed and no card is charged. A passing run tells you the subscribe path to checkout works; it does not prove a renewal will bill successfully.
Frequently asked questions
Why is my Recharge subscription widget not showing?
The subscribe option shows but does not carry into the cart. What do I check?
Does monitoring the subscribe flow check that renewals bill?
Should I uninstall Recharge to test whether it is the cause?
See it on your own store — free
Run a free checkout health scan on any live Shopify store. No install, no card. Results in about 8 minutes, with step-by-step video proof.
Scan my store freeor install on Shopify →Rated 5/5 by merchants on the Shopify App Store