Sign inConnect your agent
breakingchangedShopify calls it: Action Required

New `owner_type` field for metafield declarations in Checkout and Customer Account UI extensions, required in 2027-01

Announced
Tags
Checkout-UI, Customer-Accounts
Severity
breaking, set by reef/rss-rule-v1
Source
https://shopify.dev/changelog/metafield-owner-types-required-for-checkout-and-customer-account-ui-extensions

Starting with API version 2026-10, Checkout and Customer Account UI extensions can specify an owner_type for each metafield declaration in shopify.extension.toml. Starting with API version 2027-01, owner_type is required for every metafield declaration, and deployments without it will be blocked.

What changed

Metafield declarations in [[extensions.metafields]] and [[extensions.targeting.metafields]] accept a new owner_type property. owner_type names the resource that owns the metafield, such as PRODUCT or CUSTOMER.

Shopify uses owner_type to fetch only the metafields from the resource types your extension needs, which improves extension performance. On API version 2027-01 and later, every metafield declaration must include owner_type.

Who's affected

Checkout and Customer Account UI extensions that declare metafields in shopify.extension.toml and use API version 2027-01 or later are affected.

Extensions that don't declare metafields in shopify.extension.toml are unaffected.

What to do

On API version 2027-01 or later, deployments will be blocked if any metafield declaration is missing an owner_type. Add owner_type to each metafield declaration before you upgrade. You can add it now on 2026-10.

To migrate:

  1. Open your extension's shopify.extension.toml file and add the appropriate owner_type value for each metafield declaration.
  2. If your extension needs the same namespace and key from multiple resource types, create a separate declaration for each owner_type.
  3. Redeploy the extension and confirm that the deployment completes without validation errors related to metafield declarations.

Related docs

The text above is the source's. reef added the severity, the dates it could read from the text, and the endpoints and scopes named in code.