React Native App Freezes on IPad Periodically while running on Xcode, Flipper, Metro

Viewed 24

While running my react native app in debug mode, the app will periodically freeze up or if there is a breaking error the app will freeze.

reload with Metro will not resolve the issue. I end up stopping metro and Xcode and restarting. This is getting tiresome to deal with so I am hoping I can find out what is causing the issue.

I am running a React Native App in Xcode 14.0 and using Flipper 0.164.0 (50.0.0) for debugging.

Active Plugins: hermes Debugger(RN), Logs, Network, Redux Debugger, React DevTools

When the App freezes on the IPad I can see the following errors. These don't necessarily happen at the time of the app freezing.

In Flipper I get the following Error:

Failed while retrieving marketplace plugins SyntaxError: Unexpected token < in JSON at position 0

[conn] Disconnected: SalesTrak on <device id>. 
app: "SalesTrak"
os: "iOS"
device: "Michael’s iPad"
device_id: "<device id>"
sdk_version: 4
medium: "FS_ACCESS"
rsocket: undefined

I found a way to debug flipper in Chrome. Found the rest of error message. Still not that useful to me yet.

bundle.js:formatted:444514 Failed while retrieving marketplace plugins SyntaxError: Unexpected token < in JSON at position 0
TargetConsole.<computed> @ bundle.js:formatted:444514
loadAvailablePlugins @ bundle.js:formatted:450215
await in loadAvailablePlugins (async)
loadPluginsFromMarketplace @ bundle.js:formatted:450108
refreshMarketplacePlugins @ bundle.js:formatted:450119

In Xcode, in the logs I also found this Error that appears to coincide with the time that the app freezes.

terminating with uncaught exception of type facebook::jsi::JSError: Restricted in strict mode

TypeError: Restricted in strict mode
    at anonymous (native)
    at __tickleJs (__tickleJsHackUrl:1:43)
libc++abi.dylib: terminating with uncaught exception of type facebook::jsi::JSError: Restricted in strict mode
TypeError: Restricted in strict mode
    at anonymous (native)
    at __tickleJs (__tickleJsHackUrl:1:43)

Here is the contents of package.json from the project:

"scripts": {
    "android": "react-native run-android",
    "ios": "react-native run-ios",
    "start": "react-native start",
    "test": "jest",
    "lint": "eslint ."
  },
  "dependencies": {
    "@fortawesome/fontawesome-svg-core": "^1.3.0",
    "@fortawesome/free-solid-svg-icons": "^6.0.0",
    "@fortawesome/react-native-fontawesome": "^0.2.7",
    "@react-native-community/async-storage": "^1.12.1",
    "@react-native-community/checkbox": "^0.5.9",
    "@react-native-community/datetimepicker": "^3.5.2",
    "@react-native-community/geolocation": "^2.0.2",
    "@react-native-community/hooks": "^2.8.1",
    "@react-native-community/netinfo": "^7.1.2",
    "@react-native-masked-view/masked-view": "^0.2.6",
    "@react-native-picker/picker": "^2.4.1",
    "@react-navigation/bottom-tabs": "^6.0.9",
    "@react-navigation/drawer": "^6.1.8",
    "@react-navigation/material-top-tabs": "^6.0.6",
    "@react-navigation/native": "^6.0.6",
    "@react-navigation/stack": "^6.0.11",
    "@terrylinla/react-native-sketch-canvas": "^0.8.0",
    "axios": "^0.25.0",
    "formik": "^2.2.9",
    "moment": "^2.29.1",
    "rbush": "^3.0.1",
    "react": "17.0.2",
    "react-native": "0.66.3",
    "react-native-anchor-carousel": "^4.0.1",
    "react-native-bouncy-checkbox": "^2.1.10",
    "react-native-device-info": "^8.4.8",
    "react-native-draganddrop-board": "^1.0.4",
    "react-native-dropdown-picker": "^5.3.0",
    "react-native-error-boundary": "^1.1.12",
    "react-native-fast-image": "^8.5.11",
    "react-native-flipper": "^0.144.0",
    "react-native-fs": "^2.18.0",
    "react-native-geocoding": "^0.5.0",
    "react-native-gesture-handler": "^1.10.3",
    "react-native-image-crop-picker": "^0.37.3",
    "react-native-image-pan-zoom": "^2.1.12",
    "react-native-image-picker": "^4.3.0",
    "react-native-image-zoom-viewer": "^3.0.1",
    "react-native-maps": "^0.29.4",
    "react-native-mask-input": "^1.1.0",
    "react-native-modal-datetime-picker": "^13.0.0",
    "react-native-pager-view": "^5.4.9",
    "react-native-permissions": "^3.1.0",
    "react-native-picker-select": "^8.0.4",
    "react-native-reanimated": "^2.2.4",
    "react-native-render-html": "^6.3.4",
    "react-native-safe-area-context": "^3.3.2",
    "react-native-screens": "^3.9.0",
    "react-native-select-multiple": "^2.1.0",
    "react-native-signature-capture": "^0.4.12",
    "react-native-svg": "^12.3.0",
    "react-native-tab-view": "^3.1.1",
    "react-native-toast-message": "^2.1.5",
    "react-native-vector-icons": "^9.1.0",
    "react-redux": "^7.2.6",
    "redux-devtools-extension": "^2.13.9",
    "redux-middleware-flipper": "^1.0.9",
    "redux-persist": "^6.0.0",
    "redux-thunk": "^2.4.0"
  },
  "devDependencies": {
    "@babel/core": "^7.12.9",
    "@babel/runtime": "^7.12.5",
    "@react-native-community/eslint-config": "^2.0.0",
    "babel-jest": "^26.6.3",
    "eslint": "7.14.0",
    "jest": "^26.6.3",
    "metro-react-native-babel-preset": "^0.66.2",
    "react-devtools-core": "^4.24.5",
    "react-test-renderer": "17.0.2"
  },
  "jest": {
    "preset": "react-native"
  }
}```
0 Answers
Related