Fix blank page when clicking Clear cache and restart in Troubleshoot#85047
Closed
Fix blank page when clicking Clear cache and restart in Troubleshoot#85047
Conversation
Two changes to prevent the blank page: 1. Pass shouldHandleNavigationBack: false to the confirm modal since the modal immediately clears app state and doesn't need browser back-button handling. This prevents window.history corruption that confuses React Navigation. 2. Pass shouldNavigateToHomepage: true to clearOnyxAndResetApp() so the app navigates to HOME after clearing Onyx state instead of being left on a corrupted navigation state. Co-authored-by: Issa Nimaga <inimaga@users.noreply.github.com>
7 tasks
|
@nyomanjyotisa Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
Contributor
|
🚧 @inimaga has triggered a test Expensify/App build. You can view the workflow run here. |
Contributor
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
Contributor
|
Closing PR as issue no longer reproduceable. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Explanation of Change
Clicking "Clear cache and restart" in Settings > Troubleshoot on staging causes the web page to go blank instead of showing the "Are you sure?" confirmation modal. This was a regression introduced by #84799, which memoized the Global Modal context and exposed a latent bug.
The root cause is a combination of two issues:
shouldHandleNavigationBack: true(hardcoded default), which pushes a browser history entry without a React Navigationid. On modal close,window.history.back()fires apopstateevent that React Navigation processes as genuine back navigation, corrupting the navigation state.clearOnyxAndResetApp()was called withoutshouldNavigateToHomepage, so after Onyx state was wiped, the app was left on a corrupted navigation state with no recovery.This PR applies two targeted fixes:
shouldHandleNavigationBack: falseto the confirm modal — this modal immediately clears the app state and does not need browser back-button handling, avoiding the navigation corruption entirely.shouldNavigateToHomepage: truetoclearOnyxAndResetApp()— after clearing Onyx, the app navigates to HOME rather than being left stranded.Fixed Issues
$ #84957
PROPOSAL: #84957 (comment)
Tests
Offline tests
N/A — the "Clear cache and restart" flow requires an active session and immediately resets the app.
QA Steps
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Web: Chrome
Tested via Playwright on the dev environment. The confirmation modal now appears correctly with "Are you sure?" title and "Reset and refresh" / "Cancel" buttons. The page does not go blank.