Since POS update 11.6.1, we have identified three breaking changes affecting POS UI Extensions that use the scanner and modal APIs:
shopify.scanner.hideCameraScanner()no longer works. Calling the method executes without error (confirmed via logs), but the camera scanner overlay remains on screen and does not dismiss. The only way to close it is for the user to manually press the X button. This is confirmed viasetTimeouttesting, the function fires correctly but has no effect on the native camera overlay.window.close()no longer reliably closes the extension modal when called from an async context. Callingwindow.close()from within a chain of awaited Shopify API calls (e.g. aftercart.addCartCodeDiscount) does not dismiss the modal in production. The same call works correctly when triggered directly from a user interaction (button press). This may share a root cause with thehideCameraScanner()issue, both are commands sent from the extension to dismiss a native overlay, and both stopped working in 11.6.1. It appears POS 11.6.1 may have changed or broken how the native layer handles dismissal signals originating from async extension code.- The camera scanner now renders full-screen within the modal. Prior to 11.6.1, the camera scanner rendered as a partial overlay within the modal view. It now takes up the full modal screen, which is a breaking UI change for extensions that display UI alongside the scanner.
All three issues are reproducible on production devices running POS 11.6.1 and were not present on earlier versions.