I'm trying to get my iOS React-Native app working on Android. One thing that is hindering me in this already difficult process is that JS exceptions not only seem to crash the app, but the error report is also not giving me useful line number info. Instead it gives me the URL to the local packager instance. How do I make it not crash on JS errors, and also give me useful stack info so I can properly debug?
EDIT: Also this error doesn't occur when I build and run the app on iOS. I'm only getting it on Android.
For now I've found a workaround. I put a breakpoint in File.java, where the exception is thrown, and moved up the stack to DevSupportManagerImpl.java where StackTraceHelper.convertJsStackTrace(ReadableArray details) gets called.
ReadableArray can be inspected in the debugger to reveal the actual JS stack information including the real files and line numbers related to the error.
Related
As a beginner to Sentry and web dev and debugging issues, some of the errors Sentry is picking up are completely baffling to me, including this one. Our web app seems just fine at the URL that Sentry is saying there is an error at. I'm not familiar with our app using anything related to webkit-masked-url. Is it safe to ignore this type of error?
This particular set of mysterious errors has been asked about on Sentry's GitHub, and they reference a WebKit issue.
According to the comments there, they are caused by an error coming from a Safari browser extension, and can safely be ignored, or filtered.
Sometimes I get ReferenceError in my sentry with this instantSearchSDKJSBridgeClearHighlight. Google says nothing.
All I found is https://github.com/algolia/instantsearch-android and https://github.com/algolia/instantsearch-ios that may be related to my issue.
I got 53 issues from 5 different users and all of them Edge Mobile on iphone.
Maybe someone knows what this thing is (or know method how to know)?
Edit: I also found this issue using github search. Same issue as mine and created by bot
This is a bug in the Bing Instant Search feature in Edge on iOS; the feature tries to call a function that no longer exists. Thanks for the bug; I've passed it along to the feature owners.
The basic idea is that for Edge on iOS the actual web engine is not our normal one (Blink); it is instead Safari's WkWebView.
In order to implement features like Bing's instant search, we have to inject JavaScript into the pages we load. Then our outer browser calls those JavaScript functions we injected.
Here, someone goofed and got rid of (or renamed) the injected JavaScript function, but failed to remove/update the browser code that tries to call that injected JavaScript.
So users who are watching the browser's error logs see an error message saying "Hey, there's no such function."
This is normally harmless, but if you have "Sentry" code that watches for error messages and complains about them to the website developers, it starts complaining about this error message we're causing.
I’m developing a cross-platform GUI app for Mac and Windows using wx.html2.WebView, using the latest wxPython 4.1.1. (Hint: The problem started appearing in 4.1. Earlier wxPython versions, as well as the wxPython 4.1.1 for Mac, don’t have that problem, but I’m trying to migrate to the latest wxPython for various benefits it has)
The Windows app throws an error message Error: OLE Automation error in eval: Unknown name or named argument. when executing some JavaScript on WebView.RunScript().
I honestly don’t know where to start debugging. I can’t find out what JavaScript code caused the problem since the code isn’t displayed anywhere. I tried throwing in a confirmation dialog before each RunScript() call, but the execution doesn’t wait, and instead, the dialogs pile up over each other.
As the JavaScript code gets generated by the app on runtime, I did route all JavaScript code into a file and syntax-checked it externally, without errors.
The only result that shows up in Google search for that error message is this page: https://trac.wxwidgets.org/ticket/17893?cversion=2&cnum_hist=10 and the discussion hints at a custom protocol being used, which I’m not using, so it seems irrelevant.
Any ideas?
Don't know the reason behind, but I have solved the same error by adding an <script></script> element into the page contents. That is, for instance, replacing:
self.browser = wx.html2.WebView.New(self)
self.browser.SetPage('<p>Hello World!</p>')
with this:
self.browser = wx.html2.WebView.New(self)
self.browser.SetPage('<p>Hello World!</p><script></script>')
Recently, in a piece of software I'm working on, I have been receiving a spate of errors in Sentry from clients that I'm having a lot of trouble pinning down. The specific error is this:
Non-Error promise rejection captured with value: 'registerDomMutation' is not defined
The specific error seems to be generated by Sentry itself as it attempts to capture some other problem. What has really got me stuck is that I can't track down where registerDomMutation is being called, or which piece of software that should be defining it. It doesn't appear to be part of Sentry; I know that it's not in my code; and it doesn't appear to be in any of the packages I use. It sounds like it could be a browser method of some kind, but I can't find any information on it. This error only seems to be occurring in the new version of iOS Safari (14.3), but it's also not occurring consistently.
Is anyone familiar with this method? Can you point me in the right direction?
I believe they're coming from internal WebView of Klarna application. I cannot seem to find any source code for the app to prove this point. But recurring Klarna/<some version> pattern shared among all the errors' userAgent string makes me think so.
Android version of the app is affected too. I guess they are sharing the same JS code.
I have strict CSP rules regarding scripts allowed to run on my page and I guess some code the app is relying on just doesn't run due to them.
I am working on an web app that needs to run both on Android and iPhone.
There are all sort of reasons why such an app would crash.
One of them being memory, others maybe wrong access to URL or even run time errors in js.
My biggest issue now, is that whenever the iPhone crash, it just restarts. It reports no error, no crash report, no log, no nothing.
It makes it extremely difficult to guess what is the reason for the web app to crash.
Is there something I need to enable on iPhone to see the errors?
Maybe some code in js?
Thanks.
It turns out the errors are displayed in a different place than the log.
I assumed errors would appear the same place as the log, in the safari inspector. But You actually need to click the red error sign to see the errors.
The errors I saw in my case is that it was binding a disposed texture and program.
This might be because I Teardown the assets but the mesh is still in the THREE.js scene, so the next time it renders, it's missing those assets.