Skip to content
TrustList
News

Shopify POS cart calls will reject when the till refuses a change

Editorial

By TrustList Editorial

Extensions on API version 2026-10 must catch errors on 15 cart mutations or risk stuck screens; versions 2026-07 and earlier keep the old behaviour.

About Shopify POS cart calls will reject when the till refuses a change

Shopify POS cart calls will reject when the till refuses a change

7 October 2026: Shopify has made a breaking change to the cart API in POS UI extensions. From API version 2026-10, a cart mutation rejects its promise unless Shopify POS confirms that the cart actually changed. In earlier versions the same calls resolved whether or not POS applied the write.

Not yet independently verified. Single source, Shopify's own developer changelog. We have not tested the behaviour in a POS extension. We will update this when it can be confirmed, and remove this note.

The company says the old behaviour meant an app could not tell an applied write from a dropped one, and could show a fee or discount as applied when the cart was untouched.

The change covers 15 existing mutations, among them bulk cart update, remove line item, apply cart discount, add cart code discount, set customer, remove customer, the line item property calls, the line item discount calls and the two selling plan calls. A new update line item quantity mutation arrives in 2026-10 and rejects from its first release.

An unconfirmed write fails with one of two messages. "POS refused the cart update. The cart was not changed." means POS declined the write, for example after the cashier has moved on to payment, and a retry can work once cart editing reopens. "POS could not confirm the cart update." means the outcome is unknown and a partial write is possible, so the extension should read the cart before it retries. Other rejections, such as an invalid discount value or a missing customer, still happen, so matching on the message matters only when the two cases need separate handling.

The rule applies per extension, set by the api_version it declares, and not per store. Extensions on 2026-07 and earlier are untouched. Code that already wraps cart calls in try and catch will run its handler on an unconfirmed write instead of carrying on as if it succeeded.

The risk is in code that does not catch. An uncaught rejection stops the rest of the handler, including interface updates that follow the write and cleanup such as clearing a loading state, which Shopify says can leave a spinner on screen or skip a confirmation step.

Shopify's instruction is to add rejection handling at every cart mutation call site before changing the version to 2026-10. Teams that cannot do that yet can stay on 2026-07, which keeps working until it reaches the end of its support window under Shopify's API versioning policy.

Company profile on TrustList: Shopify

Related on TrustList:

Sources

Categories & features

TrustList Weekly

The week in software and IT, in one email

The news that matters to buyers, new rankings and our own research. Every Thursday, free, and easy to leave.

We will email you to confirm. Unsubscribe with one click in any issue. Privacy policy