sentry-javascript: react-native on android in production make error that can't read

i got this in some part of json file in sentry server which send from
raven 3.70 android 6.0.1 Mi4 model the first one show only [native code] message vs show path and module in the simulater device

"sentry.interfaces.Exception": {
    "exc_omitted": null,
    "values": [
      {
        "stacktrace": {
          "frames": [
            {
              "abs_path": "[native code]",
              "filename": "[native code]",
              "in_app": false
            },
            {
              "function": "forEach",
              "abs_path": "[native code]",
              "filename": "[native code]",
              "in_app": false
            },
            {
              "abs_path": "[native code]",
              "filename": "[native code]",
              "in_app": false
            },
            {
              "abs_path": "[native code]",
              "filename": "[native code]",
              "in_app": false
            },
            {
              "abs_path": "[native code]",
              "filename": "[native code]",
              "in_app": false
            },
            {
              "abs_path": "[native code]",
              "filename": "[native code]",
              "in_app": false
            }
          ],
          "has_system_frames": false,
          "frames_omitted": null
        },
        "mechanism": null,
        "type": "TypeError",
        "module": null,
        "thread_id": null,
        "value": "2 is not a function (evaluating 'e()')",
        "raw_stacktrace": null
      }
    ]
  },

compare with this json in simulator ( api 23, android 6.0.0 )

  "sentry.interfaces.Exception": {
    "exc_omitted": null,
    "values": [
      {
        "stacktrace": {
          "has_system_frames": false,
          "frames": [
            {
              "function": "onmessage",
              "abs_path": "http://localhost:8081/debuggerWorker.js",
              "module": "debuggerWorker",
              "in_app": false,
              "lineno": 39,
              "colno": 56,
              "filename": "/debuggerWorker.js"
            },
            {
              "function": "MessageQueue.callFunctionReturnFlushedQueue",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 11917,
              "colno": 1,
              "filename": "/index.android.bundle"
            },
            {
              "function": "guard",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 11849,
              "colno": 1,
              "filename": "/index.android.bundle"
            },
            {
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 11918,
              "colno": 8,
              "filename": "/index.android.bundle"
            },
            {
              "function": "MessageQueue.__callFunction",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 12036,
              "colno": 34,
              "filename": "/index.android.bundle"
            },
            {
              "function": "Object.receiveTouches",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 19688,
              "colno": 25,
              "filename": "/index.android.bundle"
            },
            {
              "function": "Object._receiveRootNodeIDEvent",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 19626,
              "colno": 14,
              "filename": "/index.android.bundle"
            },
            {
              "function": "Object.batchedUpdates",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 20889,
              "colno": 18,
              "filename": "/index.android.bundle"
            },
            {
              "function": "Object.batchedUpdates",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 33163,
              "colno": 13,
              "filename": "/index.android.bundle"
            },
            {
              "function": "ReactDefaultBatchingStrategyTransaction.perform",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 21685,
              "colno": 12,
              "filename": "/index.android.bundle"
            },
            {
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 19627,
              "colno": 25,
              "filename": "/index.android.bundle"
            },
            {
              "function": "Object.handleTopLevel",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 20727,
              "colno": 1,
              "filename": "/index.android.bundle"
            },
            {
              "function": "runEventQueueInBatch",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 20716,
              "colno": 16,
              "filename": "/index.android.bundle"
            },
            {
              "function": "Object.processEventQueue",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 20025,
              "colno": 1,
              "filename": "/index.android.bundle"
            },
            {
              "function": "forEachAccumulated",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 20690,
              "colno": 5,
              "filename": "/index.android.bundle"
            },
            {
              "function": "executeDispatchesAndReleaseTopLevel",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 19849,
              "colno": 8,
              "filename": "/index.android.bundle"
            },
            {
              "function": "executeDispatchesAndRelease",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 19838,
              "colno": 18,
              "filename": "/index.android.bundle"
            },
            {
              "function": "Object.executeDispatchesInOrder",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 20408,
              "colno": 1,
              "filename": "/index.android.bundle"
            },
            {
              "function": "executeDispatch",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 20385,
              "colno": 17,
              "filename": "/index.android.bundle"
            },
            {
              "function": "Object.invokeGuardedCallback",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 20553,
              "colno": 8,
              "filename": "/index.android.bundle"
            },
            {
              "function": "Constructor.proxiedMethod [as touchableHandleResponderRelease]",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 9068,
              "colno": 22,
              "filename": "/index.android.bundle"
            },
            {
              "function": "Constructor.touchableHandleResponderRelease",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 26566,
              "colno": 6,
              "filename": "/index.android.bundle"
            },
            {
              "function": "Constructor.proxiedMethod [as _receiveSignal]",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 9068,
              "colno": 22,
              "filename": "/index.android.bundle"
            },
            {
              "function": "Constructor._receiveSignal",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 26792,
              "colno": 6,
              "filename": "/index.android.bundle"
            },
            {
              "function": "Constructor.proxiedMethod [as _performSideEffectsForTransition]",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 9068,
              "colno": 22,
              "filename": "/index.android.bundle"
            },
            {
              "function": "Constructor._performSideEffectsForTransition",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 26876,
              "colno": 6,
              "filename": "/index.android.bundle"
            },
            {
              "function": "Constructor.proxiedMethod [as touchableHandlePress]",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 9068,
              "colno": 22,
              "filename": "/index.android.bundle"
            },
            {
              "function": "Constructor.touchableHandlePress",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 58914,
              "colno": 32,
              "filename": "/index.android.bundle"
            },
            {
              "function": "Object.onPress",
              "abs_path": "http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=true&minify=false",
              "module": "<unknown module>",
              "in_app": false,
              "lineno": 123937,
              "colno": 100,
              "filename": "/index.android.bundle"
            }
          ],
          "frames_omitted": null
        },
        "mechanism": null,
        "type": "TypeError",
        "module": null,
        "thread_id": null,
        "value": "a is not a function",
        "raw_stacktrace": null
      }

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Reactions: 1
  • Comments: 33 (9 by maintainers)

Commits related to this issue

Most upvoted comments

Hey everyone here – I would love to take this fix upstream, but I need:

  • Some actual test frames from real RN on Android data to put into tests
  • Some verification that the fix is working – I’m getting mixed answers here

Can someone help?

@benvinegar the problem is still there 😦 error hi there 2017-03-05 18-03-21

We faced the same issue, and this fix https://github.com/denstepa/raven-js/commit/885f0a1c88401975aa062f2d71a7dbc7462eda94 helped us to get stacktraces and source maps working for android in production mode. The problem was with path to file that was index.android.bundle, without file:/// in the beginning as it was for iOS

I will try to check if it could causes problems in other browsers etc and will do pull request a bit later

@benvinegar The fix added in 3.14.0 release doesn’t seem to work.

I’m sorry if it’s because of the stacktrace I posted before (which was most probably not obtained correctly).

Here are two raw stacktraces straight from logcat. I hope they will be more useful in resolving the issue (@denstepa’s fork still seems to be working fine). I’m using react native v0.42.3

RN_str_1.txt RN_str_2.txt

@benvinegar +1. I have this on Android.

Error: CUSTOM ERROR
  at ? ([native code])
  at ? ([native code])
  at ? ([native code])
  at ? ([native code])
  at forEach([native code])
  at ? ([native code])

For iOS it’s okey:

Error: CUSTOM ERROR
  at onPress(/Users/vagrant/git/src/routes.js:220:28)
  at e(/Users/vagrant/git/node_modules/react-native/Libraries/Components/Touchable/TouchableOpacity.js:125:45)
  at touchableHandlePress([native code])
  at e(/Users/vagrant/git/node_modules/react-native/Libraries/Components/Touchable/Touchable.js:742:34)
  at _performSideEffectsForTransition([native code])
  ...

@benvinegar I also confirm that the fix is working for me

@vehas how did you work around this? got the same issue on my LG G3

This has been fixed and will be in the next release.

I can confirm what @alexkring says. Using the Nextdoor/raven-js fork I actually get a stacktrace instead of the [native code]. Also the first row of the callstack indeed seems to be off.

I am still facing the issue. Would like to check on the status of this.

Using: raven-js: 3.15.0 react-native: 0.42.3

Would be glad to give any additional info required.

Thanks 😃

@benvinegar yes, I used #875 and it still didn’t work

@benvinegar I have an android app which also has this issue. I’m happy to provide the dump/printed if you could guide me how to get it?

@benvinegar I don’t think it because of React Native on Android, in fact I managed to get the log of a crash on production Android app. It looks like this

E/ReactNativeJS: Can’t find variable: a
E/AndroidRuntime: FATAL EXCEPTION: mqt_native_modules
                                                          Process: com.ehlife, PID: 4225
                                                          com.facebook.react.common.JavascriptException: Can’t find variable: a, stack:
                                                          onPress@1142:836
                                                          touchableHandlePress@319:1163
                                                          _performSideEffectsForTransition@165:8280
                                                          _receiveSignal@165:6789
                                                          touchableHandleResponderRelease@165:4275
                                                          a@120:72
                                                          c@119:421
                                                          i@119:616
                                                          f@117:163
                                                          g@117:291
                                                          i@122:84
                                                          processEventQueue@117:1298
                                                          s@123:92
                                                          handleTopLevel@123:178
                                                          <unknown>@115:847
                                                          perform@132:528
                                                          batchedUpdates@213:481
                                                          a@125:346
                                                          _receiveRootNodeIDEvent@115:819
                                                          receiveTouches@115:1193
                                                          value@58:3762
                                                          <unknown>@58:1998
                                                          b@58:626
                                                          value@58:1970

                                                              at com.facebook.react.modules.core.ExceptionsManagerModule.showOrThrowError(ExceptionsManagerModule.java:95)
                                                              at com.facebook.react.modules.core.ExceptionsManagerModule.reportFatalException(ExceptionsManagerModule.java:79)
                                                              at java.lang.reflect.Method.invoke(Native Method)
                                                              at java.lang.reflect.Method.invoke(Method.java:372)
                                                              at com.facebook.react.bridge.BaseJavaModule$JavaMethod.invoke(BaseJavaModule.java:322)
                                                              at com.facebook.react.cxxbridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:158)
                                                              at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
                                                              at android.os.Handler.handleCallback(Handler.java:739)
                                                              at android.os.Handler.dispatchMessage(Handler.java:95)
                                                              at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:31)
                                                              at android.os.Looper.loop(Looper.java:135)
                                                              at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:196)
                                                              at java.lang.Thread.run(Thread.java:818)

I think above log is okay because I tried the same crash on iOS production build and here is the iOS crash log

2016-10-31 17:45:25.585 [fatal][tid:com.facebook.react.RCTExceptionsManagerQueue] Unhandled JS Exception: Can’t find variable: a
2016-10-31 17:45:25.597 EHLife[40850:506254] *** Terminating app due to uncaught exception ‘RCTFatalException: Unhandled JS Exception: Can’t find variable: a’, reason: ‘Unhandled JS Exception: Can’t find variable: a, stack:
onPress@1147:837
touchableHandlePress@321:1163
_performSideEffectsForTransition@298:8280
_receiveSignal@298:6789
touchableHandleResponderRelease@298:4275
a@119:72
c@118:396
i@118:591
f@116:163
i@121:84
processEventQueue@116:1273
s@122:92
handleTopLevel@122:178
<unknown>@114:847
perform@131:503
batchedUpdates@216:456
a@124:321
_receiveRootNodeIDEvent@114:819
receiveTouches@114:1193
value@35:3089
<unknown>@35:1325
b@35:602
value@35:1297
‘
*** First throw call stack:
(
    0   CoreFoundation                      0x0000000104e8e34b __exceptionPreprocess + 171
    1   libobjc.A.dylib                     0x0000000103d9e21e objc_exception_throw + 48
    2   CoreFoundation                      0x0000000104ef7265 +[NSException raise:format:] + 197
    3   EHLife                              0x0000000103559c65 RCTFatal + 393
    4   EHLife                              0x00000001035531ec -[RCTExceptionsManager reportFatalException:stack:exceptionId:] + 549
    5   CoreFoundation                      0x0000000104e1505c __invoking___ + 140
    6   CoreFoundation                      0x0000000104e14ee1 -[NSInvocation invoke] + 289
    7   CoreFoundation                      0x0000000104e2ced6 -[NSInvocation invokeWithTarget:] + 54
    8   EHLife                              0x0000000103556f25 -[RCTModuleMethod invokeWithBridge:module:arguments:] + 604
    9   EHLife                              0x000000010357d3a1 -[RCTBatchedBridge _handleRequestNumber:moduleID:methodID:params:] + 219
    10  EHLife                              0x000000010357cc0b __33-[RCTBatchedBridge handleBuffer:]_block_invoke.329 + 492
    11  libdispatch.dylib                   0x0000000108d6a810 _dispatch_call_block_and_release + 12
    12  libdispatch.dylib                   0x0000000108d8c12e _dispatch_client_callout + 8
    13  libdispatch.dylib                   0x0000000108d71523 _dispatch_queue_serial_drain + 1018
    14  libdispatch.dylib                   0x0000000108d71cf3 _dispatch_queue_invoke + 1118
    15  libdispatch.dylib                   0x0000000108d7209b _dispatch_queue_override_invoke + 376
    16  libdispatch.dylib                   0x0000000108d73a0e _dispatch_root_queue_drain + 506
    17  libdispatch.dylib                   0x0000000108d737b4 _dispatch_worker_thread3 + 113
    18  libsystem_pthread.dylib             0x00000001091324de _pthread_wqthread + 1129
    19  libsystem_pthread.dylib             0x0000000109130341 start_wqthread + 13
)
libc++abi.dylib: terminating with uncaught exception of type NSException