Configuration options

Most Bugsnag settings can be configured from the Unity Inspector, but you can also change settings inside your scripts:


If you want to manually track in which versions of your application each exception happens, you can set AppVersion.

Bugsnag.AppVersion = "1.2.3-alpha";


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

Bugsnag.SetAutoCaptureSessions (true);


By default, we will automatically notify Bugsnag of any fatal exceptions (crashes) in your game. If you want to stop this from happening, you can set the Auto Notify property in the Unity Inspector.

You can also change this setting in your scripts as follows:

Bugsnag.AutoNotify = false;


Bugsnag uses the concept of contexts to help display and group your errors. Contexts represent what was happening in your game at the time an error occurs. By default, this will be set to be your currently active Unity Scene.

If you would like to set the Bugsnag context manually, you can set the Context property in your scripts:

Bugsnag.Context = "Space Port";


Clears a tab of information so it will not be sent to Bugsnag.



By default, Bugsnag will be notified about any Exception logged to Debug.LogException. You can send additional log information to Bugsnag (eg. all Debug.LogError messages) by changing the Notify Level property in the Unity Inspector.

You can also change this setting in your scripts as follows:

Bugsnag.NotifyLevel = LogSeverity.Error;

If you use other Unity log levels (like Debug.LogError or Debug.LogAssertion) which only contains a text field, Bugsnag can display the log as a header with an associated message. The log needs to be in the format <header>: <message> with the header having no spaces, for example:

Debug.Log("PlayerWonMetric: Player won game for the first time");


By default, Bugsnag will treat any error, exception and assert logs as Bugsnag errors (rather than warnings or infos). You can define your own custom mappings between Unity log levels and Bugsnag severities by providing individual mappings:

// Map all Unity assertion logs to Bugsnag warnings
Bugsnag.MapUnityLogToSeverity(Bugsnag.LogSeverity.Assert, Bugsnag.Severity.Warning);


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:

Bugsnag.NotifyReleaseStages = ["staging", "production"];


By default Bugsnag sends exceptions to, if you’re running Bugsnag On-premise, you can change this to point to your local Bugsnag server:

Bugsnag.NotifyUrl = "";


If you would like to distinguish between errors that happen in different stages of your game’s release process (development, qa, production, etc) you can set the ReleaseStage in your scripts:

Bugsnag.ReleaseStage = "development";

By default this is set to be production if the build is a release build, and development for a development build.


When using an on-premise version of Bugsnag you will want to change the endpoint that the notifier sends session information to. You can do that by setting SessionUrl.

Bugsnag.SessionUrl = "";


Bugsnag helps you understand how many of your users are affected by each error. In order to do this, we send along a userId with every exception. By default we will generate a unique ID and send this ID along with every exception from an individual device.

If you would like to override this userId, for example to set it to be a username of your currently logged in user, you can set the userId property:

Bugsnag.SetUser("userId", "User Name", "");

You can also set the email and name of the user and these will be searchable in the dashboard.

Displaying the file for non-debug Unity builds

Filenames for Stacktraces may not be available in production builds, due to optimizations in Unity which remove this information. Currently we display ‘unknown file’ in this scenario.