Application ID is not valid" error when launching Point of Sale API deep link, recurring despite Dashboard re-registration

I’m integrating the Square Point of Sale API (square-commerce-v1:// deep link) into a custom web app so staff can send a cart total from a browser screen to the Square Point of Sale app on the same iPad.

Application ID: sq0idp-8WNorp6v4pOfnDZdeifxdw (from the “Point of Sale API” app in the Developer Dashboard)

Request I’m sending (built client-side in JS, then navigating to the resulting URL):

Error: When this URL is opened on the iPad (Square Point of Sale app installed, same device), the POS app opens and immediately shows “Application ID is not valid” (Japanese: アプリケーションIDが無効です) instead of the register/checkout screen.

Timeline:

The client_id and callback_url in the code above have not changed since first implementation.
2026-08-17: Same error occurred; traced to a mismatch between the callback_url in the request and the “Web Callback URLs” registered for this application in the Developer Dashboard. Fixed by aligning them.
2026-08-27: Error recurred. Found the “Web Callback URLs” field in the Dashboard was completely empty (as if never saved, or reset). Re-entered Access Denied and the deep link started working again.
2026-08-29 (2 days later): Error recurred a third time, with the client-side code and Dashboard settings both unchanged from the working state on 08-27.
Questions:

Is there a known issue where “Web Callback URLs” (or another Point of Sale API app setting) can silently revert or fail to persist after saving in the Developer Dashboard?
Besides an exact match between callback_url in the request and the registered Web Callback URL, are there other settings (app status, location binding, token/cache expiry on the POS app side, etc.) that can independently produce “Application ID is not valid”?
Is there a way to verify, via API or Dashboard, that the current live configuration for this Application ID actually matches what’s displayed in the Dashboard UI, in case there’s a propagation delay or caching issue?
Any guidance would be appreciated — this has now broken the same integration three times in about two weeks with no code changes on our side.