Postmortem: A Horizon Swap That Enabled New Customer Accounts
A theme upgrade silently enabled new customer accounts, and the subscription portal vanished. Here is what happened, and what we now check first.

One Sunday in early September, Iona published a Horizon-based theme on her small-batch hot sauce subscription store. It looked cleaner than her old Dawn build. Larger typography. A proper mega-menu. The drawer cart she had been asking us about for months. Two mornings later, three customers had emailed asking where the "manage subscription" link on their account page had gone. By Wednesday she had eleven tickets and a Slack DM to us that read: "I think I broke everything."
The theme swap, it turned out, had also flipped her store from legacy customer accounts to new customer accounts. No confirmation dialog. No warning banner in the theme publish flow. Shopify does not tell you this part specifically. We spent the next four days working out what had come back, what had not, and what we should have caught in ten minutes if we had known where to look.
What happened
Iona ships one monthly hot-sauce club box and a handful of standalone bottles. ReCharge runs her subscriptions. She had been staring at Dawn for two years and finally decided to move to Horizon. She duplicated the theme, spent a Saturday customizing sections, and pressed publish on Sunday afternoon.
By Monday evening the first two support emails had arrived. Same question, both from repeat subscribers: "Where do I change my delivery date?" The ReCharge "MANAGE SUBSCRIPTIONS" button that used to sit under her account header was gone. Tuesday, a customer emailed to say the fifth-order discount code she had earned no longer showed up anywhere on her account page. Wednesday morning, a customer who had checked out with PayPal, using a different email address than her store login, could no longer see any of her past orders at all.
By the time we got on the call, Iona had already tried what most of us would try. She reinstalled ReCharge. She cleared her theme cache. She cleared her browser cache. She opened an incognito window on her phone. Nothing changed, because none of that was the actual problem.
The actual problem was that her account page was no longer being rendered by her theme. It was being rendered by Shopify at accounts.shopify.com, in the new customer accounts hosted interface. Any theme Liquid that used to render at /account was not being read. Any app block she had placed into the legacy account template was not being read either. As one commenter on the Shopify Community migration thread this month put it, anything that lived on the old Liquid /account templates is simply gone. That was the whole diagnosis.
Why publishing Horizon flipped the account system
This is the part nobody tells you until you have already tripped over it.
Horizon ships without any legacy account templates. There is no templates/customers/account.liquid file. There is no templates/customers/login.liquid file. The account UI in Horizon is rendered through a component called shopify-account, which is a stub that hands off to the new customer accounts system. Luke, a Shopify staff member, confirmed the design intent in a May 2025 Shopify Developer Community reply: "Horizon doesn't support legacy accounts, so you'll either need to build your own account pages or switch to New Customer Accounts."
Shopify treats publishing a theme without legacy account templates as an implicit vote for the new system. When Iona pressed publish on Horizon, Shopify silently disabled her legacy accounts toggle and enabled the new customer accounts toggle. There is no admin confirmation. There is no publish-time modal that says "this theme will change your account system." A theme-account warning banner exists elsewhere in the admin, but Liam, another Shopify staff member, acknowledged in June 2025 that the banner logic was buggy and needed rework. Multiple merchants have reported the banner flashing false positives on stores whose legacy code was still intact, and as far as we can tell that fix has not changed the underlying "publish a theme without a modal" flow.
Since July 30, 2026, any theme submitted to the Shopify Theme Store must include the shopify-account header component. New Theme Store themes therefore do not include legacy Liquid template files at all. Any merchant on legacy accounts who upgrades to a Theme Store theme is one publish click away from a silent account migration.
What the 30-day revert did, and what it did not
Shopify offers a 30-day revert window on the new customer accounts toggle. On paper this feels like a safety net. In practice it is a safety net for exactly one thing: the toggle itself.
We flipped Iona's store back to legacy on Wednesday afternoon. The toggle reverted. The /account URL began responding again. The legacy login page reappeared. That was all we got back. What did not come back:
- Horizon's legacy account customizations. Horizon does not carry them, because it never had them. Reverting the toggle does not repopulate templates/customers/account.liquid in a theme that never shipped that file.
- The ReCharge account-page app block. It had rendered on Dawn via a legacy app block slot. Horizon has no such slot. The block did not reappear because there was no template in the new theme to place it in.
- The hardcoded /account URL references in Iona's welcome-email footer, which she had updated to accounts.shopify.com/ during a Tuesday test pass. Reverting the toggle did not roll her email templates back.
- Two customer segments she had rebuilt in the admin to reference new-account status codes. Her old segments were still saved, but the definitions now pointed at deprecated field values.
The same commenter on the September migration thread put it plainly: the revert gives you the setting back, not the customizations you already tore out. That single sentence would have saved us three of the four days on Iona's account. The 30-day revert window is only a safety net for merchants who flip the toggle and touch nothing else while they test. Anyone who runs a full migration pass and then reverts still owns most of the cleanup.
What we now check before any theme publish
This is the ten-minute pre-publish audit we now run for anyone on legacy accounts who is considering a new theme, including any Horizon variant. If you want a second pair of eyes on the checklist before you press publish, that is what help1's expert chat is for; the first fifteen minutes are free and we would rather spend them on your pre-publish audit than on your Wednesday inbox.
- Open Theme > Edit code on your current legacy theme. Look for templates/customers/account.liquid, templates/customers/login.liquid, and templates/customers/register.liquid. Confirm all three exist and note any customizations you or a developer have made.
- Open the same folder on the new theme you are about to publish. If any of those three files are absent, publishing this theme migrates your store to new customer accounts. This is the one check that would have saved Iona's Sunday.
- List every app that renders anything on the customer account page: subscriptions (ReCharge, Bold, Appstle, Seal Subscriptions), loyalty (Smile.io, Growave, LoyaltyLion, Yotpo), wishlist apps, custom customer fields apps (Helium Customer Fields), B2B registration approval flows. For each, check the app's changelog or open a direct support ticket asking: does the app ship a Customer Account UI Extension, and is it installed on your store? Shopify has said roughly 800 apps have shipped extensions; many others have not. If an app you rely on has not, the migration loses that surface until the app updates, on a timeline the app developer controls.
- Check Shopify Flow. Any workflow that fires on customer_account_status conditions, or on segments that reference legacy status codes, will silently stop matching after migration. IFGeCommerce's September checklist on the Shopify Community is where we first saw this documented publicly; it is not in the official Shopify migration guide.
- Check custom sign-in Liquid. If you have a branded login page, a login popup app, or redirect rules pinned to /account/login, none of it transfers. The new login lives on accounts.shopify.com, outside your theme.
- Check hardcoded /account URLs in email templates, market URL rewrites, and any external landing pages you own. Anything hardcoded needs updating separately, and reverting will not roll those changes back.
- If you accept PayPal and any of your customers use a different PayPal email than their store login, know in advance that those customers can lose visibility into their PayPal-paid orders after migration. Nobody at Shopify has fixed this at time of writing.
Only after all seven check out do we let anyone press publish. The one item that catches most stores, and would have caught Iona's, is item 2. For a broader read on which other Horizon behaviors quietly break existing customizations, we wrote that up last month.
What still hurts
Even after every check passes, a few things are just harder now than they were. Customer Account UI Extensions are locked to Shopify's Polaris design components; you cannot ship arbitrary HTML or CSS in the account panel, which means every branded account experience built in Liquid loses some polish on the new side. Standard app proxy paths are blocked inside the extensions because the extensions run in a sandboxed iframe, so any app that relied on /apps/{slug} for its backend calls has to be rebuilt against a full absolute URL with server-side CORS headers configured. And in September a developer on the Shopify Community flagged that there is still no deep-link install path for account-extension app blocks the way theme app blocks and checkout extensions offer. If you install a new subscription app post-migration, you and the app support team both have to click through the customizer manually to place the block.
We have not personally shipped a mobile app that authenticates through the new system, but the Apple and Google review threads make it clear that OTP-based logins can fail app store review because the reviewer cannot receive the OTP email that the store sends. The community-validated workaround is a shared demo inbox whose credentials go into the review notes rather than any static test-mode from Shopify. That alone would keep us from recommending the migration to a merchant with an unlaunched native mobile app in the pipeline.
The take
The 30-day revert window is real, but we keep watching merchants treat it as a safety net when it is closer to a receipt: it says you were here, not that you can go back.
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.