Configuration options

In addition to configuring a Bugsnag client with an API key, it can also be configured with additional options using a Configuration object.

import { Client, Configuration } from "bugsnag-react-native";

const configuration = new Configuration(),
      bugsnag = new Client(configuration);

Configuration can be instantiated with an API key and has the following options.


Your Integration API Key, available on your Bugsnag dashboard under “Settings”. If not set, it will be loaded from your AndroidManifest.xml or Info.plist if available on Android and iOS respectively.

configuration.apiKey = "YOUR-API-KEY";


The version of the application. By default, this information is populated from the underlying native app.

configuration.appVersion = "1.4.5";


Set to true if you would like Bugsnag to automcatically capture sessions.

configuration.autoCaptureSessions = true;

Using this option, Bugsnag will report a session each time:

  • The app is launched
  • The app enters the foreground


By default we will automatically add breadcrumbs for common application events at the native layer, such as entering the background and system events. To disable this behavior, set this property to false:

configuration.automaticallyCollectBreadcrumbs = false;


By default, we will automatically notify Bugsnag of any fatal exceptions in your application. If you want to stop this from happening, you can set autoNotify to false:

configuration.autoNotify = false;


Before a report is sent to Bugsnag, a callback can be registered to modify or reject any error report. By default, no callbacks are registered. To prevent a report from being sent, return false from the callback.

configuration.registerBeforeSendCallback(function(report, error) {
  if (report.errorClass === 'UnimportantDeviceError')
    return false;

Callbacks can also be removed individually:


or all at once:



Removes customized user information from an error report which was set with setUser.



A user-defined unique identifier for a JavaScript code deployment. There can be multiple deployments for a given appVersion. This is most useful when using a tool like CodePush to update your app. See the showing full stacktraces guide for more information.

configuration.codeBundleId = "1.0-15"


Leaves a breadcrumb when any console log method is called. This wraps .log(…), .debug(…), .info(…), .warn(…) and .error(…), creating a breadcrumb with the supplied arguments and severity level. The supplied arguments are passed on to the original log function.

Warning: this has an unfortunate side-effect in that all log messages will appear to originate from the Bugsnag source rather than original location of the log call. As such the default for this option is false.

configuration.consoleBreadcrumbsEnabled = true


Delivery contains the configuration for how reports are sent to Bugsnag. To change the endpoint used to send error reports, change the delivery endpoint:

import { StandardDelivery } from "bugsnag-react-native"; = new StandardDelivery("");


By default, unhandled promise rejections are sent to Bugsnag when not in dev mode. To change whether rejections are sent, set handlePromiseRejections:

configuration.handlePromiseRejections = false;

Promises can also be captured on an individual basis by using notify as the catch block:

new Promise(function(resolve, reject) {
  /* potentially failing code */
.then(function() { /* the promise resolved */ })


By default, we notify Bugsnag of all exceptions that happen in your app. If you would like to change which release stages notify Bugsnag of exceptions you can set the notifyReleaseStages property:

configuration.notifyReleaseStages = ['beta', 'production'];


In order to distinguish between errors that occur in different stages of the application release process a release stage is sent to Bugsnag when an error occurs. This is automatically configured by the notifier to be “production”, unless a development environment is detected. In this case it will be set to “development”. If you wish to override this, you can do so by setting the releaseStage property manually:

configuration.releaseStage = 'beta';


When using an on-premise version of Bugsnag you will want to change the endpoint to which the notifier sends session information.

configuration.sessionEndpoint = '';


In order to correlate errors with customer reports, or to see a list of users who experienced each error, it is helpful to capture and display user information on your Bugsnag dashboard. To set an identifier for a user, use the setUser function:

bugsnag.setUser('1234', 'Jessica Jones', '');

The user ID, email, and name are searchable on the Bugsnag dashboard.

By default, if no user information is provided, Bugsnag sends a device- and vendor-specific identifier assigned as the user id for each device.

To remove customized user information, use clearUser.