-
Notifications
You must be signed in to change notification settings - Fork 25k
Fix disappearing redbox on initial load of an invalid bundle. #50867
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix disappearing redbox on initial load of an invalid bundle. #50867
Conversation
|
@cipolleschi has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator. |
|
@cipolleschi merged this pull request in 4cc9db1. |
|
This pull request was successfully merged by @aleqsio in 4cc9db1 When will my fix make it into a release? | How to file a pick request? |
Summary: Right now having a javascript error like an invalid import statement during first bundle load results in a disappearing redbox screen. https://github.com/user-attachments/assets/ab9c64f5-6e32-481c-a58f-6d37bb920acb The `invalidate` call removed in this PR cleans up all turbomodules, including the RedBox module, which in turns calls `dismiss` in `RCTRedBox`. After removing this line the result is as following: https://github.com/user-attachments/assets/6eeb4d43-f883-440f-ade3-5628f85f833a I made sure that the `invalidate` function is still called when executing only two possible ways to reload the bundle: - the Reload button - Cmd+R The HMR/hot reload is not connected if the bundle has an error on initial load, so we don't need to worry about it. Longer term, it would be better to establish HMR and use a different redbox in this case:  Doing this requires larger changes to the bundle loading flow – happy to to try and land that change if there's any guidance you could give. ## Changelog: <!-- Help reviewers and the release process by writing your own changelog entry. Pick one each for the category and type tags: [ANDROID|GENERAL|IOS|INTERNAL] [BREAKING|ADDED|CHANGED|DEPRECATED|REMOVED|FIXED|SECURITY] - Message For more details, see: https://reactnative.dev/contributing/changelogs-in-pull-requests --> [IOS][FIXED] – Fix disappearing redbox on initial load of an invalid bundle. Pull Request resolved: #50867 Test Plan: I have tested this change using RN from main and RNTester app (see videos). Reviewed By: cortinico Differential Revision: D73511154 Pulled By: cipolleschi fbshipit-source-id: dfe149ebc15d845f07fd3926db2e063b468870af
|
This pull request was successfully merged by @aleqsio in 3af9e65 When will my fix make it into a release? | How to file a pick request? |
Summary:
Right now having a javascript error like an invalid import statement during first bundle load results in a disappearing redbox screen.
Untitled.mp4
The
invalidatecall removed in this PR cleans up all turbomodules, including the RedBox module, which in turns callsdismissinRCTRedBox.After removing this line the result is as following:
Simulator.Screen.Recording.-.iPhone.16.Pro.Max.-.2025-04-23.at.13.14.16.mp4
I made sure that the
invalidatefunction is still called when executing only two possible ways to reload the bundle:The HMR/hot reload is not connected if the bundle has an error on initial load, so we don't need to worry about it.
Longer term, it would be better to establish HMR and use a different redbox in this case:
Doing this requires larger changes to the bundle loading flow – happy to to try and land that change if there's any guidance you could give.
Changelog:
[IOS][FIXED] – Fix disappearing redbox on initial load of an invalid bundle.
Test Plan:
I have tested this change using RN from main and RNTester app (see videos).