We use Bugsnag for general error catching, and we use firebase for a host of other features.
At the moment crashes and error only got to Bugsnag (react-native-bugsnag), but we'd like them to also go to Crashlytics (which is installed as part of React Native Firebase).
Is this possible? If so how.
While Bugsnag and Crashlytics can usually operate fine alongside each other, there are some cases where other error reporting tools can cause interference and thus the error may only land in one or the other.
I'd recommend trying Bugsnag and Crashlytics out separately to confirm the behaviour in case something else is causing the issue, or swapping the order in which they are initialized as that will likely make a difference.
Please feel free to reach out to us at Bugsnag support to discuss your config in more detail.
Related
I've integrated bugsnag in react native via segment and followed all the steps provided by segment documents but still, it's not showing any sort of error or log in bugsnag dashboard. Should I implement bugsnag directly instead of relying on the segment?
We would always recommend integrating with Bugsnag directly instead of using the Segment integration. This is because Bugsnag should be loaded as early on in your application as possible in order to detect all errors in your app, and using it via the Segment integration breaks that.
The Segment integration also doesn't use an up to date version of Bugsnag - by integrating with Bugsnag directly you will be able to use the latest version of the Bugsnag library and take advantage of all the latest fixes and improvements.
Take a look at our platform guides for details on how to get set up with your preferred platform: https://docs.bugsnag.com/platforms/
I'm trying to get errors from my React Native app, just now the app it's in production so I need a free way to get the users errors to fix it and know what happened. I am using React Native with Expo.
Abstract / Answer
Generally speaking, Expo offers great error detection for debugging purposes when running it in local development mode. But since you weren't specific, I'm going to assume you meant production not development. Your best bet would be using Sentry. If you would have asked me before then I would have suggested building your own module based on native events and report back using Firebase or something similar. But since Sentry is now well integrated into Expo, then your best bet is using it. It's a great platform with many features, it's definitely worth it.
I'm getting the infamous Maximum Stack Call Size Exceeded error in Expo app.
I understand that it's caused by code that keeps calling itself, creating an infinite loop.
Does Expo or React Native provide more information about where this error is? I've already been through my code and didn't find anything. Something a bit more specific would be helpful in narrowing down the issue.
What's evn more interesting in this case is that I only get the error in the Expo Go app. When I run the app in Android Emulator, I don't get the error and the app works fine.
Any suggestions?
I found the culprit and it's totally unexpected.
I develop web front-end in React and mobile in React Native. One of the primary reasons is code sharing.
I have a file that contains all the action types I use in managing the state of my app. Technically not but kind of an enum file. They look like this:
export const SET_IS_AUTHENTICATED = 'SET_IS_AUTHENTICATED';
export const SET_USER_INFO = 'SET_USER_INFO';
In this file, I have exactly 486 action types and this is exactly what was creating the error.
I don't need all of these action types in my mobile app but I'd decided to keep things consistent and I thought this was totally harmless so I've been sharing this enum file in all my React and React Native apps.
Here are two interesting observations:
I just started developing with Expo. Prior to that I was using straight React Native -- created through React Native CLI and I NEVER got any errors for using this file.
Even more interesting is that the Android Emulator does NOT throw any errors in the same project. Only the Expo Go app throws this error.
This may even be by design and not necessarily an undesired side effect of the Expo Go app. Not sure. I'd love to know if others have had similar experiences with the Expo Go app.
This is probably not helpful, but when I upgraded from expo sdk 41 to 43 then I started getting this error. I made no code changes besides the upgrade and now when my app loads I get the error Unhandled promise rejection, [RangeError: Maximum call stack size exceeded.]. I get the error on expo go on both platforms
I have a react-native app. I recently moved to react-native version 0.61.5 for which I took the long route of creating a new react-native app and porting my code over to avoid any linking issues since new version used PODFILE as the default linking mechanism. Ever since I moved to version 0.61.5, I don't get the correct location of code in error logs. I think this is mainly happening when the code is running in asynchronous fashion which most of the code is. For e.g., look at below screenshot:
It is reporting that it is not able to call map on some array which is apparently undefined but the place where the error is reported is completely incorrect. I have no such file in my codebase and it is probably pointing to some file in some react-native package.
I am using Sentry #sentry/react-native": "^1.1.0". I don't think Sentry can cause issue with the sourcemaps reported during development.
I am not sure how to debug this problem. This problem is causing a lot of issues in debugging any errors as I have to manually figure out where the error happened. Please let me know if you have any tips on how to fix this problem.
Can you help us please with these great tools integration.
Our React Native iOS project has been using Crashlytics for several months and it works well in case of native crashes but in case of JS exceptions it required some customization of react-native logging (this Medium articles helped a lot to reach as verbose JS output as possible). In the end we didn't have as good JS errors output as we would like to have.
So we decided to integrate Sentry as well.
It was done successfully, but it seems that Sentry outpaces Crashlytics catching crashes before it: we can see crashes in Sentry dashboard but no in Crashlytics' one.
My question is the next: is it possible to integrate both Crashlytics and Sentry for both case - native crashes AND JS exceptions?
Thank you in advance.
UPD 06.03.2019
Finally, we've come to the usage of only Sentry because of the next reasons:
first of all, it doesn't require any special code for the JS events & errors well-formated output, whereas Crashlytics does;
second, it doesn't require any manipulation with dSym files released (and probably encrypted) via Testflight;
third, it also catches native crashes and provides a verbose output as well.
Sentry has support to React Native which includes the JS and Native errors (both iOS and Android).
I'm totally biased as I work for Sentry but it seems to me, based on your requirements and the two options you listed, Sentry is the one which has the support you need.
Mike from Fabric here. On iOS, only one uncaught exception handler can be safely installed and there will be conflicts, like you're seeing if multiple handlers are installed.