When a selected date has no shipping rates, the date selector in our checkout extension widget starts jumping around. The original extension isn’t remounted. It stays hidden, but Shopify creates a new extension instance with default values. Both instances exist at the same time, and Shopify toggles which one is visible depending on shipping availability.
We observed the same behavior with other inputs (like postal code) in a simple extension. Here’s a screen recording explaining the behavior: Checkout - serhii-checkout-1 - 11 February 2026 | Loom
-
The extension renders with a unique ID and state.
-
Removing an input (e.g., postal code) triggers a new extension instance with default state.
-
Restoring the input brings back the original extension instance with its previous state.
-
Both instances exist simultaneously, but Shopify only shows or hides them depending on the input.
This can lead to unexpected behavior if your extension assumes there is only one instance at a time.