Android frequent crashes ("Expo native runtime is not available")

  • SDK version: 40.0.1
  • Platforms: Android
  • Diagnostics:
  Expo CLI 4.1.6 environment info:
    System:
      OS: macOS 11.1
      Shell: 5.8 - /bin/zsh
    Binaries:
      Node: 12.20.1 - ~/.nvm/versions/node/v12.20.1/bin/node
      Yarn: 1.22.10 - /usr/local/bin/yarn
      npm: 6.14.10 - ~/.nvm/versions/node/v12.20.1/bin/npm
      Watchman: 4.9.0 - /usr/local/bin/watchman
    SDKs:
      iOS SDK:
        Platforms: iOS 14.3, DriverKit 20.2, macOS 11.1, tvOS 14.3, watchOS 7.2
    IDEs:
      Xcode: 12.3/12C33 - /usr/bin/xcodebuild
    npmPackages:
      expo: ^40.0.0 => 40.0.1
      react: 16.13.1 => 16.13.1
      react-dom: 16.13.1 => 16.13.1
      react-native: https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz => 0.63.2
      react-native-web: ~0.13.12 => 0.13.18
    npmGlobalPackages:
      expo-cli: 4.1.6
    Expo Workflow: managed

This started off appearing after deploying an OTA update to Android and preventing the app from loading (crash on boot), but has since started occurring with the app running. ANR report (as does a logcat) reveal the following error:

com.facebook.react.common.JavascriptException: Error: Expo native runtime is not available: something went wrong and we aren't sure what it was. Please post more information and get support at https://forums.expo.io., stack:
<unknown>@13:184
v@2:1473
<unknown>@9:66
v@2:1473
<unknown>@8:7183
v@2:1473
<unknown>@6:45
v@2:1473
d@2:875
global code@3741:3
at com.facebook.react.modules.core.ExceptionsManagerModule.reportException(ExceptionsManagerModule.java
  at java.lang.reflect.Method.invoke (Native Method)
  at com.facebook.react.bridge.JavaMethodWrapper.invoke (JavaMethodWrapper.java:372)
  at com.facebook.react.bridge.JavaModuleWrapper.invoke (JavaModuleWrapper.java:151)
  at com.facebook.react.bridge.queue.NativeRunnable.run (Native Method)
  at android.os.Handler.handleCallback (Handler.java:938)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage (MessageQueueThreadHandler.java:27)
  at android.os.Looper.loop (Looper.java:223)
  at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run (MessageQueueThreadImpl.java:226)
  at java.lang.Thread.run (Thread.java:923)

this only happens on Android; iOS appears completely fine. I’ve got no idea where to keep looking… it’s super frustrating! I’ve been over the entire codebase several times and not spotted anything that feels suspicious. I think it started happening around SDK40.0.0 but can’t be 100% sure.

App is deployed via the Google Play store.