Shopify API 2026-10: Breaking Changes to Check Before You Upgrade
Shopify API 2026-10 is the stable release that brings Next Gen Events, Rollouts, buyer-requested order edits and several breaking changes. Before you bump the version in an app, check the items below, because a few of them change behavior without throwing an error. This checklist groups the changes by what you must fix, what now behaves differently and what is worth adopting. Checked against Shopify’s 2026-10 release notes and the developer changelog.

Support Window for 2026-10
The release notes say 2026-10 is supported until at least October 1, 2027 at 15:00 UTC, and that several changes in this version require code updates. Many items on the list were announced earlier in 2026 and take effect on the version, so read each one against the version you run today.
Fix These Before You Upgrade
- Segment query syntax.
MATCHESandNOT MATCHESreplace= trueand= false. Named dates such as12_months_agoare deprecated in favor of offsets like-12m. - Inventory errors.
ITEM_NOT_STOCKED_AT_LOCATIONis removed fromInventoryAdjustQuantities,InventoryMoveQuantities,InventorySetOnHandQuantitiesand theInventorySetQuantitiesUserErrorCodeenum. Remove any code that handles it. - Draft order discounts. The
priceRulefield is removed fromDraftOrderDiscountNotAppliedWarning, and the legacyPriceRuleobject and related types are gone. SelectdiscountTitleanddiscountCodeinstead. - Customer Account API.
Customer.lastIncompleteCheckoutand the unreachableCheckoutsubtree are removed, with no replacement. - POS UI extensions.
session.currentSession.staffMemberIdis removed. Usesession.staffMember.value?.id.
Behavior That Changes Without an Error
- Taxes recalculate on address changes. Changing the shipping address of an unfulfilled order with
orderUpdateor the REST order update endpoint now recalculates taxes for the new destination. Re-readtaxLines,totalTaxSetand totals afterwards, and compare balances for payment or refund differences. - Invalid metafield filters now fail. Queries that filter by a metafield that cannot be filtered return an error instead of silently ignoring the predicate. Bugs that were hidden before can surface now. Our metafield debugging guide helps trace them.
- Carrier services.
carrierServiceCreateand the RESTcarrier_servicesendpoint no longer add rates to the General shipping profile. Configure rates in a shipping profile. - New enum value.
OrderDisplayFulfillmentStatuscan returnFULFILLMENT_NOT_REQUIRED. Handle it if you map statuses exhaustively. - Discounts and Rollouts. Native
startsAtandendsAtmay no longer describe availability. See our Rollouts guide for discount apps.
Worth Adopting in 2026-10
- Next Gen Events are generally available, configured in
shopify.app.tomlwithtriggers, a GraphQLqueryandquery_filter. Start with Events vs webhooks and the migration guide. - Variant barcodes.
ProductVariant.barcodesreturns up to 20 typed barcodes andProductVariant.barcodeis deprecated. See our barcodes guide. - Multiple tracking numbers.
OrderCreateFulfillmentInput.trackingNumbersaccepts several values. If both fields are set,trackingNumbertakes precedence. - Buyer-requested order edits. New
RequestedOrderEditoperations and webhook topics. See our order edits guide. - Order cancellation.
orderCancelreturns ajobResultof typeOrderCancelJobResult, and the existingjobfield is unchanged. - Subscriptions.
SubscriptionContractCalculationruns edits through the checkout engine with Function support and previews. It succeedsSubscriptionDraft, which remains available without those capabilities. - Markets and returns. A
marketRelationshipsquery withMarket.parentMarketsandMarket.childMarkets(needsread_markets), plusreturnPolicyProfileandreturnPolicyProfilesqueries (read needsread_legal_policies). - Customer addresses.
CustomerAddressand its input addcountryCode, which takes precedence over the deprecatedterritoryCode. - Functions.
Cart.buyerIdentity.customerexposescreatedAt,CartDeliveryOptionsupportsmetafield(namespace:, key:)in input queries, and apps can registershopify/Discountapp intents withcreateandeditactions. - Storefront API.
@inContextaccepts an optionalchannelIdto apply sales channel context.
Our Analysis: A Safe Upgrade Order
Search for removed names first. Our suggestion is to grep your codebase for ITEM_NOT_STOCKED_AT_LOCATION, priceRule, lastIncompleteCheckout, staffMemberId and any segment query strings. These are mechanical and will not show up in a type check if your queries live in strings.
Test behavior changes with data, not types. Tax recalculation, metafield filter errors and carrier service profiles do not change a schema, so they pass static checks. Run a dev store scenario for each and compare totals and error handling.
Upgrade one surface at a time. Admin API calls, webhooks or Events, Functions and extensions each have their own version setting. Moving them in separate releases makes a regression easy to attribute.
Retry safely. If an upgrade touches mutations you retry, review idempotency keys for Admin API mutations before you roll out.
FAQ about Shopify API 2026-10
How long is 2026-10 supported? Until at least October 1, 2027, according to the release notes.
Will my app break if I stay on an older version? Pinned versions keep their old behavior, but some changes, such as discounts that are part of a Rollout, can be filtered out of reads on versions before 2026-10 without an error.
Is the segment query change a breaking change? Yes. Shopify lists it as breaking, so update stored segment queries before you move.
Where is the full list? The 2026-10 release notes on shopify.dev, which also cover ShopifyQL, POS and Shopify Payments additions not repeated here.


