- Fix a compiler error that occurs when using v8.3.0 of this SDK in conjunction with v1.7.0 and below of the BugSnag Unity Performance SDK. #863
-
Added support for Unity V6. #847
-
Changed from shipping the C# layer of the SDK as precomiled DLLs to shipping source. Please see the PR description for a full list of the benefits. #847
- Update bugsnag-cocoa to v6.30.2 #849
- Update bugsnag-android to v6.10.0 #854
- Updated BugsnagUnityWebRequest to remove deprecation warnings and add new PostWwwForm methods introduced in Unity 2022.2 #847
- Allow for error correlation with Bugsnag Unity Performance. #806
- Added the BugsnagUnity version to the configuration window. #819
- Added automatic and manual network request breadcrumbs. #817
- Remove unnecessary ToArray() call when constructing an error. #822
- Updated BugSnag UI branding. #701
- Fix timing issues when Bugsnag is started after the focus event. #821
- Added the
Bugsnag-Integrity
header to outgoing Bugsnag requests to avoid extraneous releases being generated if payloads are altered. #797 - Changed
Configuration.DiscardClasses
andConfiguration.RedactedKeys
to Regex types. #807 Event.Unhandled
is (accessed via OnError and OnSend callbacks) is now non-nullable. #813
- Added a null check to the Bugsnag client to prevent crashes when accessing the client before it has been initialised #788
- Made all callback collections within the Configuration class thread safe. #810
- Added GenerateAnonymousId to the BugsnagSettingsObject. This fixes a null object reference error on GenerateAnonymousId when using both the performance SDK and Error monitoring SDK, where the error monitoring SDK shares the confirguration with the performance monitoring SDK. #812
- Bugsnag Unity will no longer officially support Unity versions below Unity 2020. Older versions may work, but we will not test against them during development.
- Fixed issue where meta files for the MacOS bundle were not generated. #802
- Fixed issue where changes to device.TotalMemory and device.ModelNumber in cocoa on send callbacks were not respected. #793
- Fixed issue where iOS C# events reported the incorrect value for device.osName. #791
- Changed initialisation of time api to reduce the risk of iOS app hangs on start #783
- Updated naming for BugsnagEditor EDM menu to reduce potential conflicts with other tools #780
- Improved handling of serialisation errors when flushing the event cache #773
- Copy the xprivacy api usage file from bugsnag-cocoa on build #768
- Added
IsStarted
check method that returns false if start has not been called on the BugSnag client. - Update bugsnag-cocoa from v6.27.2 to v6.28.0
- Fix for Android memory leak. #738
- Add null guard in the Bugsnag exception handler. #734
- Update bugsnag-cocoa from v6.26.2 to v6.27.2
- Handle exceptions thrown during deserialisation of a cached events and sessions and log the problematic json. #731
- Remove unnecessary usages of DateTimeOffset.Now to prevent iOS app hangs resulting from Unity native code accessing non-thread safe methods. #725
- Prevent callback to Unity from native layers for session and event callbacks if not used to avoid potential ANRs and improve performance. #717
- Fix an issue where stack frames containing (wrapper some/wrapper) entries were incorrectly formatted. #713
- Fix an issue where Config.GenerateAnonymousId was not respected. #704
- Fix a race condition in Bugsnag.Start involving creation of gameobjects outside of the main Unity thread. #699
- Fix an issue causing empty stacktraces in some Android events. #700
- Update bugsnag-android from v5.28.3 to v5.28.4
- Update bugsnag-cocoa from v6.25.1 to v6.25.2
- Fix an issue where collections in metadata were not present in native Android crashes. #685
- Fix an issue where errors in serialisation threw exceptions. #693
- Fix an issue where persisted events had 'unhandled' set to null #695
- Added checks in delivery to ensure payloads can't get stuck in a retry loop. #683
- Raised
Configuration.MaxBreadcrumbs
default from 50 to 100, raised the limit from 100 to 500 and added a check to truncate breadcrumbs from oversized payloads. #671 - Add
Configuration.MaxStringValueLength
config option. #668 - Added
Telemetry.Usage
configuration option to set the native Android option and the native Cocoa option #666
- Fix an issue where bundle version was not reported correctly on iOS and MacOS. #672
- Fix an issue where a null value in metadata could cause an exception. #652
- Fix an issue where android metadata was not deserialised as the correct type, which could cause exceptions when processing metadata. #652
- Fix an issue where android sessions had inaccurate Session.Handled and Unhandled counts. #684
- Fix an issue where Cocoa Device and App data was serialized incorrectly causing invalid cast exceptions in callbacks #680
- Fixed an issue where user changes made in OnSession callbacks did not make it to the generated payload #681
-
- Update bugsnag-android from v5.26.0 to v5.28.1
- Fixed an issue where the Bugsnag CacheManager class raised exceptions on some android devices. #653
- Added Nintendo Switch specific configuration values to the Bugsnag configuration tool #626
- Removed
device.freeDisk
anddevice.freeMemory
metadata from events sent in UWP builds as accessing the data can cause an exception. #648
- Update bugsnag-cocoa from v6.22.3 to v6.24.0
- Added
BugsnagEvent.FeatureFlags
to allow feature flags to be queried before event delivery. #613
- Reverted the
HideFlags
fix introduced here as it was causing (harmless)NullReferenceException
s in the editor. #617
- Fixed issue where exceptions thrown in async methods were missing some stack frames #610
- Added
DontSave
HideFlags to gameObjects created by the Bugsnag SDK to negate the chances of them making scenes dirty in the editor #604 - Fixed compilation errors when building with IL2CPP for Android after changes to the Unity API
BlockCopy
method causedArgumentException
#605
- Add
Configuration.Telemetry
config option to set the native Android option and the native Cocoa option #576
- Increased thread saftey of the metadata dictionary in Bugsnag.LeaveBreadcrumb #564
- Fixed an issue where events occuring directly after Bugsnag init had no session information attached. #571
This version contains breaking changes: some errors generated by the new version will no longer group in the Bugnsag dashboard with equivalent errors generated by older versions. This is due to the introduction of a new exception interceptor that gets passed the C# exception objects, rather than having to parse the information from Unity logs. Please see the upgrade guide for details of all the changes and instructions on how to upgrade.
- Fixed an issue where leaving a breadcrumb that contained metadata with a null value caused an exception #561
- Update bugsnag-android to v5.22.0
- Added
Bugsnag.isStarted()
to test whether the Bugsnag client is in the middle of initializing. This can be used to guard uses of the Bugsnag API that are either on separate threads early in the app's start-up and so not guaranteed to be executed afterBugsnag.start
has completed, or where Bugsnag may not have been started at all due to some internal app logic. slack-jallen:#1621 bugsnag-android#1640 - Events and Sessions will be discarded if they cannot be uploaded and are older than 60 days or larger than 1MB bugsnag-android#1633
- Fixed potentially thread-unsafe access when invoking
Bugsnag
static methods across different threads whilstBugsnag.start
is still in-flight. It is now safe to call anyBugsnag
static method onceBugsnag.start
has begun executing, as access to the client singleton is controlled by a lock, so the newisStarted
method (see above) should only be required where it cannot be determined whether the call toBugsnag.start
has begun or you do not want to wait. bugsnag-android#1638 - Calling
bugsnag_event_set_context
with NULLcontext
correctly clears the event context again bugsnag-android#1637
- Added
- Fixed an issue where the use of ToUpper caused a crash on devices using the Turkish language #543
- Fixed an issue where breadcrumbs with null messages caused errors #545
- Added Android support for EDM4U. For manual installs there see the new menu item at Window/Bugsnag/Enable EDM Support. For UPM installs we have a dedicated package. #528
- Update bugsnag-android to v5.21.0
- Fix inconsistencies in stack trace quality for C/C++ events. Resolves a few cases where file and line number information was not resolving to the correct locations. This change may result in grouping changes to more correctly highlight the root cause of an event. #1605 #1606
- Fixed an issue where an uncaught exception on the main thread could in rare cases trigger an ANR. #1624
- Added offline persistence of C# events/exceptions (all platforms); and of sessions and device ID (Windows and WebGL) #512 #509 #514
- Add
Configuration.MaxReportedThreads
config option to set the native Android option 523 - Update bugsnag-android to v5.20.0
- The number of threads reported can now be limited using
Configuration.setMaxReportedThreads
(defaulting to 200) bugsnag-android#1607 - Improved the performance and stability of the NDK and ANR plugins by caching JNI references on start bugsnag-android#1596 bugsnag-android#1601
- The number of threads reported can now be limited using
- New APIs to support forthcoming feature flag and experiment functionality. For more information, please see https://docs.bugsnag.com/product/features-experiments #504 #501
- Update bugsnag-cocoa to v6.16.1
- New APIs to support forthcoming feature flag and experiment functionality. For more information, please see https://docs.bugsnag.com/product/features-experiments bugsnag-cocoa#1279
- Fix missing user.id in OOM events with no active session. bugsnag-cocoa#1274
- Improve crash report writing performance and size on disk. bugsnag-cocoa#1273 bugsnag-cocoa#1281
- Detect hangs during launch of UIScene based apps. bugsnag-cocoa#1263
- Stop persisting changes made by
OnSendError
callbacks if delivery needs to be retried. bugsnag-cocoa#1262 - Fix incorrect
device.freeDisk
in crash errors. bugsnag-cocoa#1256 - Fix some potential deadlocks that could occur if a crash handler crashes. bugsnag-cocoa#1252
- Fix
UIApplicationState
detection when started from a SwiftUI app'sinit()
function. This fixes false positive OOMs on iOS 15 for apps that have been prewarmed without transitioning to the foreground. bugsnag-cocoa#1248 - Load configuration from the plist instead of using defaults when calling Bugsnag.start(withApiKey:) bugsnag-cocoa#1245
- New APIs to allow
OnBreadcrumb
,OnSendError
andOnSession
Swift closures to be removed. The following APIs are now deprecated and will be removed in the next major release:removeOnBreadcrumb(block:)
removeOnSendError(block:)
removeOnSession(block:)
bugsnag-cocoa#1240
- Include metadata in breadcrumbs for
UIWindow
/NSWindow
notifications. bugsnag-cocoa#1238 - Fix a crash in
-[BSGURLSessionTracingDelegate URLSession:task:didFinishCollectingMetrics:]
for tasks with no request. bugsnag-cocoa#1230 - Use
LC_FUNCTION_STARTS
to improve symbolication accuracy. bugsnag-cocoa#1214 - Fix missing imports when building with
CLANG_ENABLE_MODULES=NO
bugsnag-cocoa#1284
- Update bugsnag-android to v5.19.2
- New APIs to support forthcoming feature flag and experiment functionality. For more information, please see https://docs.bugsnag.com/product/features-experiments.
- Explicitly define Kotlin api/language versions bugsnag-android#1564
- Build project with Kotlin 1.4, maintain compat with Kotlin 1.3 bugsnag-android#1565
- Discarded unhandled exceptions are propagated to any previously registered handlers bugsnag-android#1584
- Fix SIGABRT crashes caused by race conditions in the NDK layer bugsnag-android#1585
- Fixed an issue where feature-flags were not always sent if an OnSendCallback was configured bugsnag-android#1589
- Fix a bug where api keys set in React Native callbacks were ignored bugsnag-android#1592
This version contains breaking changes, as bugsnag-unity has been updated to allow for more convenient and performant initialisation and configuration features. Please see the upgrade guide for details of all the changes and instructions on how to upgrade. In addition to the changes mentioned in the upgrade guide, the bundled Bugsnag Android Notifier has been updated. See below for details.
- Update bugsnag-android to v5.18.0
- Bump compileSdkVersion to apiLevel 31 bugsnag-android#1536
- Flush in-memory sessions first bugsnag-android#1538
- Avoid unnecessary network connectivity change breadcrumb bugsnag-android#1540 bugsnag-android#1546
- Clear native stacktrace memory in
bugsnag_notify_env
before attempting to unwind the stack bugsnag-android#1543 - Increase resilience of NDK stackframe method capture bugsnag-android#1484
redactedKeys
now correctly apply to metadata on Event breadcrumbs bugsnag-android#1526- Improved the robustness of automatically logged
ERROR
breadcrumbs bugsnag-android#1531 - Improve performance on the breadcrumb storage "hot path" by removing Date formatting bugsnag-android#1525
- Improve the memory use and performance overhead when handling the delivery response status codes bugsnag-android#1558
- Harden ndk layer through use of const keyword bugsnag-android#1566
- Delete persisted NDK events earlier in delivery process bugsnag-android#1562
- Add null checks for strlen() bugsnag-android#1563
- Catch IOException when logging response status code bugsnag-android#1567
- Update bugsnag-cocoa to v6.14.2
- Fix missing
configuration.user
and manually resumedsession
info in unhandled errors. bugsnag-cocoa#1215
- Fix missing
- Update bugsnag-android to v5.15.0
- Avoid reporting false-positive background ANRs with improved foreground detection bugsnag-android#1429
- Prevent events being attached to phantom sessions when they are blocked by an
OnSessionCallback
bugsnag-android#1434 - Plugins will correctly mirror metadata added using
addMetadata(String, Map)
bugsnag-android#1454
- Fixed an issue where breadcrumbs from non fatal apphang errors caused a crash on retrieval #431
- Removed the limit on the length of a breadcrumbs name #399
- Update bugsnag-android to v5.14.0
- Capture and report thread state (running, sleeping, etc.) for Android Runtime and Native threads bugsnag-android#1367 bugsnag-android#1390
- Update bugsnag-cocoa to v6.14.1
- Disable automatic session tracking in app extensions (it was not working as intended.) bugsnag-cocoa#1211
- Stop logging "[ERROR] Failed to install crash handler..." if a debugger is attached. bugsnag-cocoa#1210
- Include the word "request" in network request breadcrumb messages. bugsnag-cocoa#1209
- Apply
redactedKeys
to breadcrumb metadata. bugsnag-cocoa#1204 - Capture and report thread states (running, stopped, waiting, etc.) bugsnag-cocoa#1200
- Disable app hang detection for app extensions. bugsnag-cocoa#1198
- Fixed an issue where csharp exceptions originating from background threads caused errors in the App and Device class constructors #413
- Update bugsnag-cocoa to v6.12.2
- Stop dropping breadcrumbs when provided invalid metadata (that is not JSON convertible.) bugsnag-cocoa#1187
- Fix Swift fatal error parsing for messages with no filename. bugsnag-cocoa#1186
- Events now include a
thermalState
property in thedevice
tab, and unexpected app terminations that occur when the thermal state is critical will now be reported as a "Thermal Kill" rather than Out Of Memory error. bugsnag-cocoa#1171 - Fix a regression where the session was not captured at launch if Bugsnag was started before
willFinishLaunchingWithOptions
in iOS apps that do not adopt the UIScene life-cycle. bugsnag-cocoa#1180 - Fatal app hangs will no longer be reported if the
willTerminateNotification
is received. bugsnag-cocoa#1176
- Update bugsnag-android to v5.13.0
- The
app.lowMemory
value always report the most recentonTrimMemory
/onLowMemory
status bugsnag-android#1342 - Added the
app.memoryTrimLevel
metadata to report a description of the latestonTrimMemory
status bugsnag-android#1344 - Added
STATE
Breadcrumbs foronTrimMemory
events bugsnag-android#1345 - Capture breadcrumbs for OkHttp network requests bugsnag-android#1358 bugsnag-android#1361 bugsnag-android#1363 bugsnag-android#1379
- Update project to build using Gradle/AGP 7 bugsnag-android#1354
- Increased default breadcrumb collection limit to 50 bugsnag-android#1366
- Support integer values in buildUuid bugsnag-android#1375
- Use SystemClock.elapsedRealtime to track
app.durationInForeground
bugsnag-android#1375
- The
- Add new automatically collected Device data to Windows, WebGL and Unity Editor events:
batteryLevel, charging, id, model, screenDensity, screenResolution, totalMemory
#390 - Add new automatically collected App data to Windows, WebGL and Unity Editor events:
duration, id, isLaunching, lowMemory
#390 - Add new Bugsnag.Notify overloads:
Notify(exception, stacktrace)
Notify(exception, stacktrace, callback)
Notify(name, message, stacktrace)
Notify(name, message, stacktrace, callback)
#380 - Add
Bugsnag.GetLastRunInfo()
To get relevant crash information regarding the last run of the application #379 - Add
Configuration.SendLaunchCrashesSynchronously
config option to set the native Android option and the native Cocoa option #379 - Add
Configuration.LaunchDurationMillis
config option to set the native Android option and the native Cocoa option #379
Bugsnag.StopSession
has been deprecated in favour ofBugsnag.PauseSession
and will be removed in the next major release.
- Fixed an issue where app.type was not sent in native Cocoa crash reports #395
- Add
Configuration.VersionCode
config option to set the native Android option #373 - Add
Configuration.PersistenceDirectory
to set the native Android option #368 - Add
Configuration.SendThreads
config option to set the native Android option and the native Cocoa option #375 - Add
Configuration.PersistUser
config option to set the native Android option and the native Cocoa option #372 - Add
Configuration.MaxPersistedEvents
config option to set the native Android option and the native Cocoa option #371 - Add
Configuration.RedactedKeys
configuration option to enable redacting specific keys in metadata #367 - Add
Configuration.Endpoints
to enable setting custom endpoints for events and sessions #366 - Add
Configuration.ProjectPackages
config option to set the native Android option #364 - Add
Configuration.BundleVersion
config option to set the native Cocoa option #359 - Add
Configuration.AppType
configuration option to enable setting a custom value for the app.type field in an event #363 - Update bugsnag-cocoa to v6.11.0
- Add
DiscardClasses
configuration option to disable sending events that contain user defined error classes. #361 - Update bugsnag-android to v5.11.0:
Bugsnag.SetContext(string context)
has been deprecated in favour of the newBugsnag.Context
property and will be removed in the next major release.Configuration.Endpoint
has been deprecated in favour of the newConfiguration.Endpoints
class and will be removed in the next major release.Configuration.SessionEndpoint
has been deprecated in favour of the newConfiguration.Endpoints
class and will be removed in the next major release.Configuration.NotifyReleaseStages
has been deprecated in favour ofConfiguration.EnabledReleaseStages
and will be removed in the next major release.
- Add
AppHangThresholdMillis
to set the native Cocoa option #347 - Add
EnabledErrorTypes
configuration option to enable/disable different types of errors #341 - [Android] Automatic App Not Responding (ANR) detection is now enabled by default #339
- Update bugsnag-cocoa to v6.10.2
- Fix ThreadSanitizer data race warning in
BSGAppHangDetector
. #1153 - Remove (duplicated)
user
information frommetaData
. #1151 - Fix a potential stack overflow in
+[BugsnagThread allThreadsWithCurrentThreadBacktrace:]
. #1148 - Fix
NSNull
handling in+[BugsnagError errorFromJson:]
and+[BugsnagStackframe frameFromJson:]
. #1143 - Fix a rare crash in
bsg_ksmachgetThreadQueueName
. #1147 - Fix an issue that could cause C++ exceptions with very long descriptions to not be reported. #1137
- Improve performance of adding metadata by using async file I/O. #1133
- Improve performance of leaving breadcrumbs by using async file I/O. #1124
- Prevent some potential false positive detection of app hangs. #1122
- Fix ThreadSanitizer data race warning in
- Update bugsnag-android to v5.10.1:
- Prefer
calloc()
tomalloc()
in NDK code #1320 - Ensure correct value always collected for activeScreen #1322
- Capture process name in Event payload #1318
- Avoid unnecessary BroadcastReceiver registration for monitoring device orientation #1303
- Register system callbacks on background thread #1292
- Fix rare NullPointerExceptions from ConnectivityManager #1311
- Respect manual setting of context #1310
- Handle interrupt when shutting down executors #1315
- Allow serializing enabledBreadcrumbTypes as null #1316
- Properly handle ANRs after multiple calls to autoNotify and autoDetectAnrs #1265
- Cache value of app.backgroundWorkRestricted #1275
- Optimize execution of callbacks #1276
- Optimize implementation of internal state change observers #1274
- Optimize metadata implementation by reducing type casts #1277
- Trim stacktraces to <200 frames before attempting to construct POJOs #1281
- Use direct field access when adding breadcrumbs and state updates #1279
- Avoid using regex to validate api key #1282
- Discard unwanted automatic data earlier where possible #1280
- Enable ANR handling on immediately if started from the main thread #1283
- Include
app.binaryArch
in all events #1287 - Cache results from PackageManager #1288
- Use ring buffer to store breadcrumbs #1286
- Avoid expensive set construction in Config constructor #1289
- Replace calls to String.format() with concatenation #1293
- Optimize capture of thread traces #1300
- Prefer
- Fixed an issue where Windows events would have incorrectly split stacktraces resulting in all lines being bundled into one #350
- Fixed an issue where WebGL web requests that initially fail were not respecting the 10 second delay before retrying #321
- Fixed an issue where Breadcrumbs were reported in the wrong order on Windows and in the Unity Editor #322
- Fixed an issue where a "Bugsnag loaded" breadcrumb was not added on Windows, Linux, WebGL, and editor builds #327
- Fixed an issue where the fallback was not reporting the correct app.type #325
Configuration.NotifyLevel
has been deprecated in favour ofConfiguration.NotifyLogLevel
and will be removed in the next major release.Configuration.AutoNotify
has been deprecated in favour ofConfiguration.AutoDetectErrors
and will be removed in the next major release.Configuration.AutoCaptureSessions
has been deprecated in favour ofConfiguration.AutoTrackSessions
and will be removed in the next major release.
- Fixes a packaging issue in the 5.1.0 where the library version was incorrectly reported #309
- Add event metadata for CPU and graphics capabilities and migrated entries from the Unity tab to the device and app tabs, to better match other platforms #297:
unity.companyName
->app.companyName
unity.productName
->app.name
unity.version
->app.version
unity.platform
->app.type
unity.osLanguage
->device.osLanguage
unity.unityException
-> removed as a duplicate of the error classunity.unityLogType
-> removed as is contained in the error class for generic logs
- Add
EnabledBreadcrumbTypes
configuration option to enable/disable automatically recorded breadcrumbs #301 - Add
MaxBreadcrumbs
configuration option to control the number of breadcrumbs collected on all platforms #275 #304 - Update bugsnag-cocoa to v6.9.6:
- Improve accuracy of app hang event information to better reflect state at time of detection. #1118
- Stop app hangs being reported if app is launched in the background. #1112
- Stop session being reported if app is launched in the background. #1107
- Fix KSCrash state storage for apps with no CFBundleName. #1103
- Improve performance of
notify()
. #1102 #1104 #1105 - Fix a crash in
-[BugsnagApp deserializeFromJson:]
if main Mach-O image could not be identified, and improve reliability of identification. #1097 #1101
- Fix an issue where the Device.time of an event was missing the milliseconds #298
- Adjust post build script to support Unity 2021 builds #289
- Fix an issue where timestamps and other
:
-containing log message content was interpreted as the error class #292 - Correct Android session start times #291
- Fix duplicate events being sent for Android C/C++ crashes
This version contains breaking changes, as bugsnag-unity has been updated to use the latest available versions of bugsnag-android (v4.22.2 -> v5.9.4) and bugsnag-cocoa (v5.23.5 -> v6.9.3). Please see the upgrade guide for details of all the changes and instructions on how to upgrade.
- Stop scene changes overrriding context when manually set #255
- Don't Destroy TimingTrackerObject, so it persists across scenes #239
- Add bugsnag prefix to namespace of vendored SimpleJson #225
- Fix leaks from manual JNI string conversions #222
- Improve ANR handler compatibility with Google Play reporting mechanism #1179
- Avoid JNI crash in leaveBreadcrumb by pushing local frame #214
- Respect autoNotify flag on Android #207
- Add device id to error reports on Cocoa platforms #203
- Update bugsnag-cocoa to v5.23.5:
- Fix JSON serialisation of strings with control characters #739
- Removed non-thread safe date formatter #758
- Avoid dereference null pointer in JSON serialisation #637 Naugladur
- Fixed an issue where an app could deadlock during a crash if unfavourable timing caused DYLD lock contention. #580 #675 #725 #721
- Fix possible report corruption when using
notify()
from multiple threads when configured to skip capturing/reporting background thread contents (generally only Unity games). #442 - Added several additional event fields (
codeBundleId
,osName
,modelNumber
,locale
) that were missing from the OOM reports. #444 - Bugsnag now correctly records a new session if it is returning to the foreground after more than 60 seconds in the background. #529
- Delete local JNI references to avoid leaks #198
- Add option to
Configuration
to prevent automatic breadcrumb collection #199
- Avoid using deprecated AndroidJNI API in Unity 2019 #194
- (Android) Propagate non-string arguments to native android layer correctly #191
This release adds ANR detection for Unity apps running in Android. To enable this option you should
set Bugsnag.Configuration.AutoDetectAnrs
to true
after initialising bugsnag in the normal way.
- Detect ANRs on Android and provide configuration option to enable detection #184
- (Android) Prevent SIGABRT when altering Configuration on background thread #187
- Update bugsnag-android to v4.22.2:
- This release adds a compile-time dependency on the Kotlin standard library. This should not affect the use of any API supplied by bugsnag-unity.
- Modularise bugsnag-android into Core, NDK, and ANR artifacts #522
- Migrate dependencies to androidx #554
- Report internal SDK errors to bugsnag #570 #581 #594 #605 #588 #612
- Add
detectNdkCrashes
configuration option to bugsnag-android to toggle whether C/C++ crashes are detected #491 - Use NetworkCallback to monitor connectivity changes on newer API levels #501
- Fix deserialization of custom stackframe fields in cached error reports #576
- Buffer IO when reading from cached error files, improving SDK performance #573
- flushOnLaunch() does not cancel previous requests if they timeout, leading to potential duplicate reports #593
- Report correct value for free disk space #589
- Allow overriding the versionCode via Configuration #610
- Catch throwables when invoking methods on system services #623
- Update bugsnag-cocoa to v5.23.0:
- Fix unrecognized selector crash when adding metadata #430
- This release removes support for reporting 'partial' or 'minimal' crash reports
where the crash report could not be entirely written (due to disk space or other
issues like the device battery dying). While sometimes the reports could point
in the right direction for debugging, they could also be confusing or not enough
information to pursue and close the issue successfully.
This release also renames a few configuration properties to align better with the
intended use and other Bugsnag libraries, so people who use more than one
platform can easily find related functionality in a different library. The old
names are deprecated but still supported until the next major release.
#435
Bugsnag.setBreadcrumbCapacity()
is nowsetMaxBreadcrumbs()
on theBugsnagConfiguration
class. In addition, the default number of breadcrumbs saved has been raised to 25 and limited to no more than 100.BugsnagConfiguration.autoNotify
is now namedBugsnagConfiguration.autoDetectErrors
BugsnagConfiguration.autoCaptureSessions
is now namedBugsnagConfiguration.autoDetectSessions
- (iOS) Fix a build setting preventing out-of-memory events from being reported #178
- Fixed the naming and description of the GUI property "Unique logs per second" to be "Unique seconds per log" to reflect the actual behavior, which is the number of seconds required between unique Unity log messages which bugsnag-unity will convert into breadcrumbs or reports. Increase the value to reduce the number of logs or reports generated from frequent error messages.
- Update bugsnag-cocoa to v5.22.9:
- Deprecate
config.reportBackgroundOOMs
property - designating any app termination as a possible error condition can cause a lot of false positives, especially since the app can die for many genuine reasons, especially when running only in the background. bugsnag-cocoa#425 - Fix use-after-free in
notify()
logic which could lead to a deadlock bugsnag-cocoa#420 - Reduce severity of log message about thread status from 'error' to 'debug' as it does not necessarily indicate a problem and is only used for debugging. bugsnag-cocoa#421
- Show correct value for
app.inForeground
when an app launches and crashes in the background without ever coming to the foreground. bugsnag-cocoa#415 - Fix improperly retained properties which could result in a crash due to premature deallocation bugsnag-cocoa#416
- Deprecate
- (Android) Fix behavior of
Configuration.NotifyReleaseStages
to disable native C/C++ crash reporting if the currentReleaseStage
is not in the array - Fix erroneous automatic session delivery when
NotifyReleaseStages
configuration does not include the currentReleaseStage
- Fix the behavior of
Configuration.AutoNotify
to disable native crash reporting if false - Update bugsnag-cocoa to v5.22.6:
- Ensure UIKit APIs are not called from background threads if
Bugsnag.start()
is called in the background bugsnag-cocoa#409 - Fix bug in
notifyReleaseStages
where if the release stage of a build was changed afterstart()
, only the initial value was used to determine whether to send a report bugsnag-cocoa#405 bugsnag-cocoa#412 - Support disabling crash reporting after initialization by setting
Bugsnag.configuration.autoNotify
. Previously this value was ignored afterBugsnag.start()
was called, but is now used to update whether crash reports will be detected and sent. This interface can be used for crash reporting opt-out flows. bugsnag-cocoa#410
- Ensure UIKit APIs are not called from background threads if
- Support disabling native reporting during initialization
#164
The new API can be used as follows:
or by unchecking "Auto Notify" when initializing Bugsnag via a GameObject in the Unity Inspector.
Bugsnag.Init("your-api=key-here", false /* disable crash reporting */);
- (Android) Fix possible crash when encoding non-unicode text #165
- (Android) Fix crash when deleting global metadata bugsnag-android#582
- (Android) Fix crash when adding breadcrumbs with null values in metadata bugsnag-android#510
- (Android) Fix potential crash when adding a breadcrumb with metadata bugsnag-android#546
- (Android) Fix potential crash in when calling
Configuration.setMetaData()
bugsnag-android#513 - (Android) Fix potential crash when initializing with ANR detection in low connectivity situations bugsnag-android#520
- (Android) Disable reporting for crashes on background threads on x86 devices #161
- (Android) Discard duplicate reports for C/C++ exceptions reporting when Unity Cloud Diagnostics is enabled
- (iOS) Update bugsnag-cocoa dependency to v5.22.5:
- Fix erroneously reporting out-of-memory events from iOS app extensions bugsnag-cocoa#394
- Fix erroneously reporting out-of-memory events when an iOS app is in the foreground but inactive bugsnag-cocoa#394
- Fix erroneously reporting out-of-memory events when the app terminates normally and is issued a "will terminate" notification, but is terminated prior to the out-of-memory watchdog processing the notification bugsnag-cocoa#394
- Update bugsnag-cocoa dependency to v5.22.3
- Fix JSON parsing errors in crash reports for control characters and some other sequences bugsnag-cocoa#382
- Disable reporting out-of-memory events in debug mode, removing false positives triggered by killing and relaunching apps using development tools. bugsnag-cocoa#380
- Update bugsnag-android dependency to v4.15.0:
- Make handledState.isUnhandled() publicly readable bugsnag-android#496
- Reduce library size bugsnag-android#492
- (Android) Fix error class and message parsing for uncaught Java exceptions without message contents #159
- Show report metadata added using
Bugsnag.Metadata.Add()
in native crash reports #157 - (Android) Fix null pointer dereference when calling Bugsnag.StopSession()
- (Android) Fix abort() in native code when storing breadcrumbs with null values in metadata bugsnag-android#511
- Update bugsnag-cocoa dependency to v5.22.2:
- Fix trimming the stacktraces of handled error/exceptions using the
depth
property. Paul Zabelin bugsnag-cocoa#363 - Fix crash report parsing logic around arrays of numbers. Metadata which included arrays of numbers could previously had missing values. bugsnag-cocoa#365
- Fix trimming the stacktraces of handled error/exceptions using the
- Support automatic session tracking when using code-based initialization flow
rather than a game object and
BugsnagBehaviour
- Correctly set the "new session" threshold when using automatic session tracking to 30 seconds - no more than 1 session should be automatically started every 30 seconds when toggling the app between the foreground and background.
- Capture initial session on iOS - previously, the
OnApplicationFocus()
callback was relied upon to fire the first session, which does not fire at launch on iOS (unlike Android). This change starts the first session in the frame following BugsnagUnity initialization. - Updated bugsnag-cocoa to v5.22.1:
- Report correct app version in out-of-memory reports. Previously the bundle version was reported as the version number rather than the short version string. bugsnag-cocoa#349
- Fix missing stacktraces in reports generated from
notify()
bugsnag-cocoa#348
- Migrate version information in reports to device.runtimeVersions, adding additional info like scripting backend #149
- Update bugsnag-android dependency to v4.14.0:
- Update bugsnag-cocoa dependency to v5.22.0:
- Migrate version information to device.runtimeVersions #340
- Persist breadcrumbs on disk to allow reading upon next boot in the event of an uncatchable app termination.
- Add
+[Bugsnag appDidCrashLastLaunch]
as a helper to determine if the previous launch of the app ended in a crash or otherwise unexpected termination. - Report unexpected app terminations on iOS as likely out of memory events where the operating system killed the app
- Add configuration option (
reportOOMs
) to disable out-of-memory (OOM) event reporting, defaulting to enabled. #345 - Disable background OOM reporting by default. It can be enabled using
reportBackgroundOOMs
. #345
- Update bugsnag-android dependency to v4.14.0:
- [NDK] Fix possible null pointer dereference
- [NDK] Fix possible memory leak if bugsnag-android-ndk fails to successfully parse a cached crash report
- [NDK] Fix possible memory leak when using
bugsnag_leave_breadcrumb()
orbugsnag_notify()
- Fix failure to include session info in native reports after stopping/resuming a session
- (iOS) Fix session start date formatting
- Support
Notify()
on background threads by caching values fromUnityEngine.Application
required for reports during Client initialization #147 - Improve the number of stacktrace frames gathered on Unity 2017.x by
subscribing to the
logMessageReceived
callback in addition tologMessageReceivedThreaded
and filtering by thread to remove duplicates. The main thread-onlylogMessageReceived
callback receives more stackframes on some versions of Unity 2017, improving the debugging experience.
- Update bugsnag-android dependency to v4.13.0:
- Add ANR detection to bugsnag-android (ANR detection is disabled on Unity) bugsnag-android#442
- Add unhandled_events field to native payload bugsnag-android#445
- Add stopSession() and resumeSession() to Client bugsnag-android#429
- Update bugsnag-android dependency to v4.13.0:
- Prevent overwriting config.projectPackages if already set bugsnag-android#428
- Fix incorrect session handledCount when notifying in quick succession bugsnag-android#434
- Ensure boolean object from map serialised as boolean primitive in JNI bugsnag-android#452
- Prevent NPE occurring when calling resumeSession() bugsnag-android#444
- Update bugsnag-cocoa dependency to v5.19.1:
- Fix generating an incorrect stacktrace used when logging an exception to
Bugsnag from a location other than the original call site (for example, from a
logging function or across threads). If an exception was raised/thrown, then
the resulting Bugsnag report from
notify()
will now use theNSException
instance's call stack addresses to construct the stacktrace, ignoring depth. This fixes an issue in macOS exception reporting wherereportException
is reporting the handler code stacktrace rather than the reported exception stack. bugsnag-cocoa#334 - Fix network connectivity monitor by connecting to the correct domain Jacky Wijaya bugsnag-cocoa#332
- Fix generating an incorrect stacktrace used when logging an exception to
Bugsnag from a location other than the original call site (for example, from a
logging function or across threads). If an exception was raised/thrown, then
the resulting Bugsnag report from
This release is the first to distribute Unity packages with and without 64-bit
ABI libraries for Android. In most cases, Bugsnag.unitypackage
is the correct
package to use, as by default most Unity Android apps only can use 32-bit
binaries.
- Add StopSession() and ResumeSession() to public API #136
- Update bugsnag-android dependency to v4.11.0:
- Add stopSession() and resumeSession() to Client bugsnag-android#429
- Prevent overwriting config.projectPackages if already set bugsnag-android#428
- Fix incorrect session handledCount when notifying in quick succession bugsnag-android#434
- Update bugsnag-cocoa dependency to v5.19.0:
- Add stopSession() and resumeSession() to Bugsnag bugsnag-cocoa#325
- Capture basic report diagnostics in the file path in case of crash report content corruption bugsnag-cocoa#327
- Ensure session and user information is included in native crash reports #138 bugsnag-cocoa#333 bugsnag-android#439
- [Android] Remove references to 64-bit ABIs included in the package #139
- Make
ErrorClass
andErrorMessage
mutable onException
. This allows for modifying both properties from callbacks:#140Bugsnag.Notify(exception, report => { report.Exceptions[0].ErrorClass = "CustomException"; report.Exceptions[0].ErrorMessage = "something notable"; });
- Set severity reason when manually specifying severity as a parameter to
Notify()
. This sets the correct reason for the severity selection on the dashboard. #140
- (Android) Fix a crash which could occur if large amounts of metadata or
breadcrumbs (>500 key/value pairs) are attached at once, or if
Notify()
is called concurrently several times. #132
- Ensure a stacktrace is attached to reports without underlying exceptions, such as log messages using an 'error' or 'warning' level #131
- Add support for detecting and reporting Android NDK C/C++ crashes #127
- Ensure configuration options are synced with native layer #124
- Add retry delays after delivery failure to stop excess logging #126
Update bugsnag-android dependency to v4.11.0:
- Fix cached error deserialisation where the Throwable has a cause #418
- Refactor error report deserialisation #419
- Fix unlikely initialization failure if a device orientation event listener cannot be enabled
- Cache result of device root check #411
- Prevent unnecessary free disk calculations on initialisation #409
- Lower minimum supported iOS version to 8.0 from 9.0
- Lower minimum supported macOS version to 10.8 from 10.11
- Update dependent libraries:
- bugsnag-cocoa v5.17.3
- bugsnag-android v4.10.0
- Add a configuration option for allowing Unity exceptions to reduce a project's
stability score. See the documentation for
ReportUncaughtExceptionsAsHandled
- Fix exception parsing for Android Java exceptions to ensure correct grouping, "handled"-ness, and remove extraneous stack frame from the top of the backtrace.
- Fix off-by-one error in event counts in the session tracking implementation
This is a new major release with many features and fixes. See the upgrade guide for more information on how to update your integration, or the integration guide to get started.
- Unity/C# errors are now automatically detected and reported on Windows and any other Unity platform (not including native crashes)
- Exceptions logged on background threads via the Unity
Debug.Log
API are now automatically detected and reported in additional to exceptions detected on the main thread. - Support for session and stability tracking
- Support for logging detailed breadcrumbs
- Automatically detect app version from Unity environment for WebGL | #94
- Report app information in WebGL:
duration
,inForeground
anddurationInForeground
| #94 Note: During the preparation for this release we noticed a workflow issue when targeting tvOS. In order to successfully build for tvOS, after importing the Bugsnag plugin there is a manual step required:
- In the Unity editor, go to Project > Assets > iOS > Bugsnag
- Select all source files in this directory
- In the inspector pane check
tvOS
in the "Include platforms" list - Click the "Apply" button at the bottom of the inspector pane We'll work on making this install process smoother in the future.
- Support setting the release stage before initializing the client | #73
- Upgrade bugsnag-cocoa to v5.15.5:
- Bug Fixes:
- Changes report generation so that when a minimal or incomplete crash is recorded, essential app/device information is included in the report on the next application launch. #239 #250
- Ensure timezone is serialised in report payload. #248 Jamie Lynch
- Bug Fixes:
- Upgrade bugsnag-android to v4.3.4:
- Bug Fixes:
- Avoid adding extra comma separator in JSON if File input is empty or null #284
- Thread safety fixes to JSON file serialisation #295
- Prevent potential automatic activity lifecycle breadcrumb crash #300
- Fix serialisation issue with leading to incorrect dashboard display of breadcrumbs #306
- Prevent duplicate reports being delivered in low connectivity situations #270
- Fix possible NPE when reading default metadata filters #263
- Prevent ConcurrentModificationException in Before notify/breadcrumb callbacks #266
- Ensure that exception message is never null #256
- Add payload version to JSON body #244
- Update context tracking to use lifecycle callbacks rather than ActivityManager #238
- Enhancements:
- Bug Fixes:
- (iOS) Fix error message displayed when thread tracing disabled
- Update dependent libraries:
- bugsnag-cocoa v5.15.4
- bugsnag-android v4.3.1
- Prefix WebGL methods
- Update dependent libraries:
- bugsnag-cocoa v5.15.2
- bugsnag-android v4.3.0
- Update dependent libraries:
- bugsnag-cocoa v5.15.1
- bugsnag-android v4.2.1
- Support tracking app sessions, which enables showing overall crash rate and app health
- (iOS) Fix encoding of control characters in crash reports. Ensures crash reports are written correctly and delivered when containing U+0000 - U+001F
- (iOS) Use
BSG_KSCrashReportWriter
header rather thanKSCrashReportWriter
for custom JSON serialization - (Android) Enqueue activity lifecycle events when initialisation not complete to prevent NPE
- Updated Native Cocoa + Android libraries
- Remove misleading Cocoa Error message for non-fatal errors
- Fix handledState cases in Cocoa/Android
- Support multiline error messages
- Fix bundle ambiguity error generated by codesigning the macOS assets #61
- Track whether an error is handled or unhandled
- Update native libraries
- Improve error grouping by standardizing log message format #45
- Add breadcrumbs for scene changes Jamie Lynch #54
- Load WebGL extension locally, negating the need for a separate request #46
- Fix compile error on Unity 5.5 #50
- Fix null pointer exception when manually creating the Bugsnag game object Dave Perryman #41
- Prevents crash for iOS when manually notifying exceptions Ben Ibinson #40
- Adds rate limiting and de-duplication of logs over a set period Ben Ibinson #39
- Add Unity log levels to metadata Ben Ibinson #38
- Provide Init() to support initializing Bugsnag at runtime TimothyKLambert #34
- Changed default Unity log levels to Bugsnag severity mapping, and provided ability to custom map Ben Ibinson #36
- Updated KSCrash with iOS performance improvement Ben Ibinson #37
- Transferred syntax fix on macOS sierra/latest ruby script to package file Ben Ibinson #35
- Add support for tvOS Ben Ibinson #32
- Fixed syntax errors on macOS sierra/latest ruby on post process Delisa Mason #33
- Improve folder structure for iOS and OSX Ben Ibinson #32
- Compatibility with Unity 4.7 Ben Ibinson #32
- Severity level uses enumeration rather than string Ben Ibinson #32
- Fixed incorrect reference to then Unity version of the bugsnag-cocoa notifier
- Fix NotifyLevel to be static Ben Ibinson #29
- Includes Android plugin correctly which is now in
aar
format | #24
This release includes significant updates to the underlying android and cocoa libraries.
- Add support for WebGL
- Add support for OS X
- Add support for setting user metadata
- Add support for setting app version
- Add support for setting breadcrumbs
- Upgrade bugsnag-android from 3.2.5 -> 3.4.0
- Upgrade bugsnag-cocoa from 4.0.7 -> 4.1.0
- Fix crash resulting from use of deprecated method Simon Maynard #13
- Update callback registration method to remove deprecations Delisa Mason #20 2.2.6
- Fix compilation under arm64 2.2.5
- Allow passing Context as a second argument to Bugsnag.Notify 2.2.4
- Fix use-after-free on NSNotification 2.2.3
- Make context thread safe too 2.2.2
- Make metaData thread safe 2.2.1
- Improve speed during manual notifies on android and ios. 2.2.0
- Fix LogHandler in non-debug builds.
- Make Bugsnag methods static.
- Fix crashes caused by passing unexpected nulls into Bugsnag. 2.1.0
- Fix stacktrace generation in Bugsnag.Notify() on unthrown exceptions. 2.0.0
- Rewrite to use bugsnag-android and bugsnag-ios.