Skip to content
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

iOS App after upgrading react-native to 0.72.3 hangs on splash screen with Error: Assert failed: Component must not be nil c #17004

Closed
siddarthkay opened this issue Aug 13, 2023 · 2 comments
Assignees

Comments

@siddarthkay
Copy link
Contributor

siddarthkay commented Aug 13, 2023

Problem

I have observed this problem while upgrading to react-native 0.70 as well.
Currently reproducible on builds at this PR : #16721
The app will hang at splash screen and when you put the app in background and open it again that is when you will see this error.

Screenshot

Screenshot 2023-08-13 at 6 34 17 PM

Hypothesis

  • This is not related to the recent reagent upgrade I have seen the exact same error before the reagent upgrade as well.
  • This error originates after upgrading react-native to 0.70 and exists in all further versions. So there must be some thing that changed with that react-native version.
  • This error message is related to the generated jsbundle. Somehow the clojurescript code has no build time reagent errors, otherwise it should have failed when running make run-clojure
    Meaning this is a runtime reagent/react error.

reference in reagent repo : reagent-project/reagent#382

@siddarthkay siddarthkay self-assigned this Aug 13, 2023
@siddarthkay
Copy link
Contributor Author

siddarthkay commented Aug 14, 2023

I made progress by commenting everything in the init method and console logging my way to see what prints in metro terminal and this way was helpful in listing down a few suspicious files that cause the app to hang on splash screen.

  • [status-im2.navigation.view :as views]
  • [status-im.transport.message.core :as transport.message]
  • [status-im.ui.screens.browser.eip3326.sheet :as sheet]
  • [status-im.ui.screens.browser.eip3085.sheet :as sheet]
  • [status-im.keycard.core :as keycard]
  • [status-im.keycard.card :as keycard.card]
  • [status-im.keycard.common :as keycard.common]
  • status-im2.subs.root

info Reloading app...
 BUNDLE  ./index.js 

 BUNDLE  ./index.js 

 LOG  we are here at the beginning of init -> src/status_im2/core.cljs
 LOG  we are here at the beginning of start-app -> src/status_im2/events.cljs
 LOG  we here at the end of init, here -> src/status_im2/core.cljs right after dispatching :app-started
 LOG  we here at the beginning of get-profiles-overview-success -> src/status_im2/contexts/profile/events.cljs
 LOG  -> inside else block of get-profiles-overview-success
 LOG  we here at the end of get-profiles-overview-success -> src/status_im2/contexts/profile/events.cljs
 LOG  we are here at the beginning of process -> src/status_im/signals/core.cljs/process
 LOG  shadow-cljs #89 ready!

Investigating further to find the root cause!

@siddarthkay
Copy link
Contributor Author

After playing minesweeper with the codebase all paths lead to old reanimated implementation.
Cleaning that up fixes this error.
Fixed with : ce77f1f

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant