[ECUK] MFA executeScenario silently fails when device is offline — no UI feedback, button stays enabled
When executeScenario is called while the device is offline (e.g., in the CHANGE-PIN scenario), Main.tsx silently exits early without any navigation or visual feedback. The calling screen appears completely frozen and the button stays fully enabled, so the user keeps tapping — causing a Sentry spike of 50x [MFA] Flow started logs in ~3 seconds.
Expected behavior
The user should see a proper offline indicator (similar to how BiometricsTestPage guards the call behind an isOffline check and renders FullPageOfflineBlockingView), and the button should be disabled or provide feedback when offline.
Current behavior
Main.tsx silently exits early when offline — no navigation, no visual feedback
- The button on the calling screen (e.g.,
ChangePINPage) stays fully enabled
- The user keeps tapping, generating a flood of
[MFA] Flow started logs
Root cause
The offline handling lives at the page level in BiometricsTestPage but is missing from the shared MFA context, leaving all other callers like ChangePINPage completely unprotected.
Platforms
| Platform |
Status |
| iOS |
Affected |
| Android |
Affected |
| Web |
Affected |
Slack thread: https://expensify.slack.com/archives/C09AP9F437A/p1775232248283069
[ECUK] MFA executeScenario silently fails when device is offline — no UI feedback, button stays enabled
When
executeScenariois called while the device is offline (e.g., in theCHANGE-PINscenario),Main.tsxsilently exits early without any navigation or visual feedback. The calling screen appears completely frozen and the button stays fully enabled, so the user keeps tapping — causing a Sentry spike of 50x[MFA] Flow startedlogs in ~3 seconds.Expected behavior
The user should see a proper offline indicator (similar to how
BiometricsTestPageguards the call behind anisOfflinecheck and rendersFullPageOfflineBlockingView), and the button should be disabled or provide feedback when offline.Current behavior
Main.tsxsilently exits early when offline — no navigation, no visual feedbackChangePINPage) stays fully enabled[MFA] Flow startedlogsRoot cause
The offline handling lives at the page level in
BiometricsTestPagebut is missing from the shared MFA context, leaving all other callers likeChangePINPagecompletely unprotected.Platforms
Slack thread: https://expensify.slack.com/archives/C09AP9F437A/p1775232248283069