Hi Shopify team,
I found what looks like two inconsistencies around navigation APIs in Customer Account UI Extensions.
Environment
- Surface: Customer Account UI Extension
- Target:
customer-account.order-index.block.render @shopify/ui-extensions:2026.4.3- Extension
api_version:2026-04 - Runtime: customer account web extension
Issue 1: shopify.navigation exists at runtime, but not in types
What I see
IDE
Log
- Logging
shopifyshows anavigationproperty at runtime. - TypeScript type for
shopifydoes not includenavigation.
So navigation is globally typed, but shopify.navigation is not.
Issue 2: only navigate is available on navigation
What I see at runtime
navigation.navigate exists.
But these are undefined in runtime logs:
navigation.currentEntrynavigation.updateCurrentEntrynavigation.addEventListenernavigation.removeEventListener
I see docs/type comments suggesting these members should exist (or are documented on Navigation), but in this target only navigate is available.
Minimal repro
function Extension() {
console.log("shopify:", shopify);
console.log("navigation:", navigation);
return null;
}
Expected behavior
One of the following should be true:
- Docs + typings clearly reflect target-specific availability (for example, only
navigatein block targets). - Runtime provides the full documented
Navigationcontract for this target.
Also, if shopify.navigation is intended to exist, typings should include it.
Actual behavior
- Runtime includes
shopify.navigation, but typings forshopifydo not. - In this target,
navigationonly exposesnavigate; other documented members areundefined.
Thanks.


