A cart function using an expand operation to replace physical products with non-physical ones triggers a “Shipping not available” error at checkout. While the error doesn’t block completion, it creates a poor user experience that prevents app launch.
Root cause identified:
The checkout determines which sections to display (shipping/delivery) before cart functions execute. When an expand operation removes all physical products and adds only non-shipping items, the checkout still shows shipping sections, causing the error.
Key findings:
Error only occurs when the replacement product lacks shipping configuration
If the replacement product has shipping configured, correct rates display
Delivery and shipping method sections incorrectly remain visible after the function runs
Resolution timeline:
Initially reported and acknowledged by Shopify Functions team
Multiple developers confirmed experiencing the same issue
After three months of follow-ups requesting prioritization
Bug was successfully resolved by Shopify Checkout team
The issue is now fixed, unblocking the affected applications.
Summarized with AI on November 8.
AI used: claude-sonnet-4-5-20250929.
We’re hoping to launch some new Functions functionality soon, and are running into an interesting error.
When a cart function returns an expand operation that removes a physical product and replaces it with a product that does not require shipping, the checkout page displays an error in the shipping section.
The error does not block the checkout, and the user can ignore the error and complete the checkout, but most customers would probably stop here and not check out.
Could somebody please advise on a way for us to prevent this error, or let us know if this is a bug? I’ll confirm that the address we selected is available for shipping on this dev store, so it’s not a configuration issue.
Hi @SBD - I don’t mean to pester, but is there anything we can do to prioritize this bug? Our app is ready for submission, but this bug makes the app unusable.
I have been looking into this more and have come up with a few details I think will be helpful for the devs on your side.
The “Shipping not available” error only happens if the product, added using the expand operation, does not have shipping configured. If the product added with the expand operation has shipping configured there is no error and it displays the correct rates for the product. So, that section is actually working as expected. It makes sense that it errors out when it does. It is trying to retrieve shipping rates for a product that doesn’t have any. It would never work.
The real issue is that the checkout is displaying sections that are not usually displayed when there are no products that require shipping in the cart. See attached screenshots for the checkout with the “no shipping” product. The “Delivery” and “Shipping method” sections are not displayed. However, both those sections are currently being displayed if an expand operation removes all products with shipping and only adds products without. This leads to the “Shipping not available” error being visible.
Based on that, my guess is the logic that determines which version of the checkout to display (requires shipping/no shipping) is doing so before the cart function makes modifications to the products in the cart. Instead it should be factoring in the changes made by cart functions.
Hi @SBD - it’s now been three months without an update from Shopify. Can you please provide an update on how this bug’s resolution is progressing? It’s still a blocker for our app.