Hi all,
We’re encountering a critical issue with the Cart AJAX API on stores using the new 2025 Shopify Markets setup. This appears to be a platform-level bug affecting multiple themes, including Horizon.
Problem
AJAX cart requests (add
, update
, change
, remove
) return a 500 Internal Server Error
when made from storefront URLs with country-language subfolder structures like:
/en-fr/
/en-sg/
/fr-ca/
These same requests work fine when made from simpler market paths such as:
/en/
/es/
/de/
Details
- Affected endpoints:
/en-sg/cart/add.js
,/en-sg/cart/update.js
,/en-sg/cart/change.js
, etc. - This issue occurs regardless of the theme, including on Shopify’s official Horizon theme.
In Horizon, the cart uses /en-sg/cart/add.js
for adding products, which works as expected. However, when updating quantities, Horizon uses the /en-sg/cart/change
(without .js
), and this also returns a 500 error when accessed from a country-language market URL.
So, both the documented (.js
) and undocumented endpoints are affected, depending on the operation being performed.
Reproduction Steps
- Setup the new Markets 2025
- Visit a storefront using a market URL like
/en-fr/
or/en-sg/
(or whatever you setup in step 1) - Try to add, update, or change a cart item via AJAX using the corresponding endpoint
- A 500 Internal Server Error is returned
- Repeat the same action on
/en/
,/de/
, etc. – no error
Suspected Cause
This looks like a backend regression tied to the new Shopify Markets architecture introduced in 2025. It closely mirrors a similar bug from last year that affected the .js
Cart endpoints, which took several weeks to resolve.
This bug affects critical cart functionality in international stores and risks creating a broken experience for end users.
— Related: Use documented endpoints for cart by bakura10 · Pull Request #3787 · Shopify/dawn · GitHub
Thanks.