You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Ionic Framework Lifecycle should wrap with vue ErrorHandler #30374
common-class.ts:60 Uncaught (in promise) ApiResultError: Order has expired
at UseApiRouteFetcher.ts:107:15
at callHooks (ofetch.03887fc3.mjs:131:15)
at async $fetchRaw2 (ofetch.03887fc3.mjs:299:7)
at async $fetch2 (ofetch.03887fc3.mjs:316:15)
at async fetchTypedResult (typed-fetcher.ts:78:21)
at async ionicFetchResult (ionic-fetcher.ts:45:12)
at async init (prepay.vue?t=1745726446418:133:32)
at async prepay.vue?t=1745726446418:143:7
Verified on 9.0.8. Ionic calls onIonViewWillEnter and the other Ionic page hooks directly instead of through Vue's error handling, so an error thrown in them never reaches app.config.errorHandler or onErrorCaptured. An async hook's rejection ends up as an unhandled promise rejection. A synchronous throw also stops the page transition, which leaves the new page invisible. The options API ionViewWillEnter and the other options API Ionic hooks have the same problem.
Switching to onMounted gets the error handled, but onMounted only runs the first time the page is displayed. Ionic keeps pages in the DOM, so returning to the page later will not run init() again.
Activity
thetaPC commentedon Oct 14, 2026
Thanks for the report, and sorry for the delay.
Verified on 9.0.8. Ionic calls
onIonViewWillEnterand the other Ionic page hooks directly instead of through Vue's error handling, so an error thrown in them never reachesapp.config.errorHandleroronErrorCaptured. An async hook's rejection ends up as an unhandled promise rejection. A synchronous throw also stops the page transition, which leaves the new page invisible. The options APIionViewWillEnterand the other options API Ionic hooks have the same problem.Switching to
onMountedgets the error handled, butonMountedonly runs the first time the page is displayed. Ionic keeps pages in the DOM, so returning to the page later will not runinit()again.Tracked as a bug in
@ionic/vue.