POS UI Extensions Lose session.currentSession.staffMemberId – What Developers Need to Update for 2026‑10

The static session.currentSession.staffMemberId field is removed in API version 2026‑10. Learn how to switch to the new session.staffMember signal, update your code, and keep POS extensions running smoothly.

POS UI Extensions Lose session.currentSession.staffMemberId – What Developers Need to Update for 2026‑10
6 sections

Shopify’s POS UI Extensions have received a subtle but important change in the 2026‑10 API version. The once‑static field session.currentSession.staffMemberId has been removed, and developers must now rely on the reactive session.staffMember signal. This post breaks down what the change means, who it impacts, and exactly how to update your extensions so they keep working flawlessly.

What Changed?

In API version 2026‑10, Shopify deprecated and finally removed the static session.currentSession.staffMemberId property from the POS UI Extensions Session API. The field was marked for removal back in the 2026‑07 release in favor of session.staffMember, a reactive signal that reflects the currently logged‑in staff member and updates automatically when a new staff member pins into the POS.

Who Is Affected?

Only developers building POS UI Extensions are directly impacted. Any extension that reads session.currentSession.staffMemberId will break once it targets the 2026‑10 version or newer. Merchant owners who simply install extensions won’t see a visible change, but they could experience broken functionality if the underlying extension isn’t updated. Extensions built for 2026‑07 or earlier remain functional, as the old field still exists in those versions.

How to Update Your Extension

The migration is straightforward. Replace every occurrence of session.currentSession.staffMemberId with the new reactive access pattern. For simple reads you can use the value property:

js

// Old way (pre‑2026‑10)

const staffId = session.currentSession.staffMemberId;

// New reactive signal

const staffId = session.staffMember.value?.id;

If your extension needs to react to staff changes while it’s running—say you show the staff name on a custom receipt—you should subscribe to the signal:

js

session.staffMember.subscribe((staffMember) => {

// React to staff change

console.log('Current staff:', staffMember?.id);

});

When using @shopify/ui-extensions/preact, you can also read session.staffMember.value directly inside your component’s render function. The Preact integration automatically re‑renders the component whenever the signal’s value changes, giving you a clean, declarative experience.

Testing Your Changes

  • Set the API version – In your extension’s shopify.extension.toml or manifest.json, bump the api_version to 2026‑10.
  • Run locally – Use shopify extension serve and open the POS simulator. Verify that the staff ID logs correctly and updates when you sign in as a different employee.
  • Automated tests – If you have unit tests that mock the Session API, adjust the mock to expose session.staffMember instead of the removed field.
  • Deploy to a test store – Before pushing to production, install the updated version on a staging store and perform a real‑world checkout to ensure no silent failures.
  • What Remains Unchanged

    The BaseData session.staffMemberId available to receipt targets is a separate API and continues to work exactly as before. Only the Session API used inside POS UI Extension code has changed.

    Next Steps

    Update your codebase today, test against the 2026‑10 version, and publish the new build to avoid runtime errors after the deprecation deadline. Need help troubleshooting or want a code review? Drop a comment below or reach out to our Shopify developer community for a quick assist.

    Tags
    Sources

    Related Articles

    Unlock Transparency: The New Store Activity Log Lets You Track Every Change

    Unlock Transparency: The New Store Activity Log Lets You Track Every Change

    Shopify’s rebuilt Store activity log centralizes every modification—from products to payments—into one searchable timeline. Learn what’s new, who can see it, and how merchants and developers can act today.

    November 13, 20264 min
    Custom Draft Order Discounts Now Respect Presentment Currency

    Custom Draft Order Discounts Now Respect Presentment Currency

    Shopify now calculates custom draft‑order discounts in the draft’s presentment currency instead of the shop’s default. Learn what this means for merchants, developers, and how to update your workflow today.

    November 13, 20264 min
    Checkout Functions Get Smarter: `cart.deliverableLine` Now Includes Cost Modeling and Direct Cart Line Links

    Checkout Functions Get Smarter: `cart.deliverableLine` Now Includes Cost Modeling and Direct Cart Line Links

    Shopify’s latest checkout function update adds cost modeling to `cart.deliverableLine` inputs and ties them directly to their originating cart lines. Learn what this means for developers, how to adjust your code, and the best practices to stay compliant.

    November 13, 20264 min
    Case-Insensitive Market Metafields: What the 2027-01 Storefront API Change Means for Your Store

    Case-Insensitive Market Metafields: What the 2027-01 Storefront API Change Means for Your Store

    Shopify's Storefront API 2027-01 now matches Market.metafields keys case‑insensitively. Learn why this matters, who is affected, and how to update your apps and custom storefronts before the change breaks your logic.

    November 13, 20264 min