Skip to content

Latest commit

 

History

History
1694 lines (1153 loc) · 97.7 KB

CHANGELOG.md

File metadata and controls

1694 lines (1153 loc) · 97.7 KB

Changelog

[8.0.0] - 2024-08-29

Summary

As well as some bug fixes and breaking changes described in the Upgrade Guide, this major SDK release has the following key features:

  • Improved API for NodeJS: the Bugsnag client can now be used to call SDK methods in the context of the current request
  • Breadcrumb support for NodeJS: we now support manual breadcrumbs and capture console breadcrumbs automatically
  • Improved session reporting for single page apps: a session is now created only once per page load to more accurately reflect a user's session in your app

Added

  • (node) Add support for manual breadcrumbs #1927 and automatic console breadcrumbs #2107
  • Support error correlation properties in event payloads #2174

Fixed

  • (plugin-angular) Prevent excess change detection cycles when calling Bugsnag.notify #1861

Changed

  • (node) Enable breadcrumbs and context-scoped calls #1927
  • (plugin-contextualize) Reimplement without relying on the deprecated node Domain API. From Node 16+ unhandled promise rejections are also supported #1924
  • (plugin-navigation-breadcrumbs) Calling pushState or replaceState no longer triggers a new session when autoTrackSessions is enabled #1820
  • (plugin-network-breadcrumbs, plugin-electron-net-breadcrumbs) Breaking change: The request metadata field in network breadcrumbs has been renamed to url and is no longer pre-pended with the HTTP method #1988
  • (plugin-network-breadcrumbs, plugin-electron-net-breadcrumbs) Add method metadata field to network breadcrumbs #1988
  • (plugin-network-breadcrumbs, plugin-electron-net-breadcrumbs) Add duration metadata field to network breadcrumbs #1903
  • (react-native) Update bugsnag-android from v5.32.2 to v6.6.1

[7.25.1] - 2024-08-27

Added

  • (delivery-xml-http-request) Add Access-Control-Max-Age header to CORS preflight responses #2160

Changed

  • (react-native) Update bugsnag-cocoa from v6.29.0 to v6.30.1

Fixed

  • (plugin-vue) Check global vue config exists before installing vue 2 handler #2171

[7.25.0] - 2024-07-03

Added

  • (core) Add new setTraceCorrelation method to events #2159

Changed

  • (react-native) Update bugsnag-cocoa from v6.28.1 to v6.29.0
  • (react-native) Update bugsnag-android from v5.32.2 to v5.32.3

Fixed

  • (react-native) Use synchronous native module calls when New Architecture is enabled #2152
  • (react-native) Ensure client is initialised synchronously in bridgeless mode #2165

[7.24.0] - 2024-06-10

Added

  • (react-native) Add privacy manifest resource bundle to podspec #2149

Changed

  • (plugin-react) Modified the polynomial regular expression to remove the ambiguity #2135
  • (react-native) ReactNative apps loaded in the background will no longer start a new session #2154

Fixed

  • (react-native) Discard duplicate JS exceptions in iOS New Architecture #2148

[7.23.0] - 2024-05-09

Added

  • (electron) Added support for Webpack 5 by exporting separate clients for renderer and main processes #2116
  • (react-native-cli) Update the react native cli to install and configure the @bugsnag/cli package to upload javascript source maps for react native iOS #2073

v7.22.7 (2024-04-17)

Changed

  • (metadata-delegate) Preventing prototype pollution vulnerabilities #2115
  • (plugin-interaction-breadcrumbs) Improved performance of click event breadcrumbs #2094
  • (react-native) Rename Bugsnag.framework to BugsnagReactNative.framework #2117
  • (browser) Export BrowserBugsnagStatic #2112

Fixed

  • (react-native) Move BugsnagReactNative from objective-c to objective c++ #2113

v7.22.6 (2024-03-05)

Changed

  • (react-native) Update bugsnag-cocoa from v6.28.0 to v6.28.1

Fixed

  • (react-native) Fix React Native CLI for RN 0.73 #2091 #2092

v7.22.5 (2024-02-15)

Changed

  • (react-native) Update bugsnag-android from v5.32.1 to v5.32.2

v7.22.4 (2024-02-06)

This release adds support for React Native 0.73 to @bugsnag/react-native

Changed

  • (react-native) Update bugsnag-android from v5.31.3 to v5.32.1

Fixed

  • (plugin-vue) Handle updated Vue error info URL #2068
  • (react-native) Publish xcprivacy file from vendored bugsnag-cocoa #2072

v7.22.3 (2024-01-03)

Changed

  • (react-native) Update bugsnag-cocoa from v6.27.3 to v6.28.0 (includes compliance with Apple's Required Reasons API – see online docs)

Fixed

  • (plugin-vue) Fix errorInfo metadata in Vue 3.4+ #2062

v7.22.2 (2023-11-21)

Changed

  • (react-native) Update bugsnag-android from v5.28.4 to v5.31.3
  • (react-native) Update bugsnag-cocoa from v6.26.2 to v6.27.3

Fixed

  • (electron) Do not sync to NativeClient when autoDetectErrors or nativeCrashes are disabled #2040

7.22.1 (2023-10-31)

Fixed

  • (electron) Fix startup crash when using Electron v26+ on Linux #2022
  • (electron) Fix unhandled secondary errors during delivery #2025

7.22.0 (2023-09-13)

Changed

(react-native-cli) Update the react native cli to install and configure the @bugsnag/cli package to upload javascript source maps for react native android #1990

7.21.0 (2023-08-15)

This release adds support for apps using React Native New Architecture

Added

  • (react-native) Support React Native New Architecture #1973

Fixed

  • (electron) Fix onSendError callbacks not being called #1999
  • (plugin-inline-script-content) Ensure script metadata is added in Safari 16 #1998

7.20.2 (2023-04-25)

Changed

  • (react-native) Update bugsnag-android from v5.28.3 to v5.28.4
  • (react-native) Update bugsnag-cocoa from v6.25.2 to v6.26.2
  • (delivery-xml-http-request) Ensure delivery errors are passed to the post report callback #1938

7.20.1 (2023-02-08)

Changed

  • (web-worker) Change default configuration for autoDetectErrors to false #1919

7.20.0 (2023-01-31)

This release adds support for service workers and web workers #1915

Enhancements

  • (delivery-fetch) Create fetch based delivery package #1894
  • (web-worker) Create web-worker notifier package #1896

Changed

  • (plugin-browser-device) Refactor parameters for improved guarding #1896

7.19.0 (2023-01-26)

Changed

  • (react-native) Update bugsnag-cocoa from v6.25.0 to v6.25.2
  • After trimming, attempt to send all event and session payloads, even if believed oversize #1823
  • (react-native) Update bugsnag-android from v5.28.1 to v5.28.3

Fixed

  • (plugin-express|plugin-koa|plugin-restify) Fix parts of request metadata being missing from some events #1879
  • (plugin-aws-lambda) Fix a bug when used with a server plugin (Express, Koa or Restify) causing internal callbacks to be added multiple times and reporting the wrong request data #1887
  • (plugin-electron-renderer-client-state-updates) Fix a bug where state set in renderer config could not be cleared or updated #1893

v7.18.2 (2022-11-01)

Changed

  • (react-native) Update bugsnag-cocoa from v6.24.0 to v6.25.0
  • (react-native) Remove dependency on jCenter #1856

v7.18.1 (2022-10-24)

Changed

  • (react-native) Update bugsnag-cocoa from v6.23.1 to v6.24.0
  • (react-native) Update bugsnag-android from v5.26.0 to v5.28.1

v7.18.0 (2022-09-22)

Changed

  • (react-native) Update bugsnag-cocoa from v6.22.3 to v6.23.1
  • Added getFeatureFlags() to error events #1815

v7.17.4 (2022-09-08)

Changed

  • (react-native) Update bugsnag-cocoa from v6.20.0 to v6.22.3
  • (react-native) Update bugsnag-android from v5.24.0 to v5.26.0
  • Refactor feature flags to maintain insertion order #1802

v7.17.3 (2022-07-18)

Changed

  • (react-native) Update bugsnag-cocoa from v6.18.1 to v6.20.0
  • (react-native) Update bugsnag-android from v5.23.0 to v5.24.0

v7.17.2 (2022-06-30)

Fixed

  • (react-native) Fixed missing files when installing react-native #1780

v7.17.1 (2022-06-29)

Fixed

  • (react-native) Update bugsnag-android from v5.22.4 to v5.23.0
  • (react-native) Update bugsnag-cocoa from v6.18.0 to v6.18.1
  • (react-native) Add support for React Native v0.69 #1775
  • (react-native) Add 0.69 test fixtures and CI coverage #1775
  • (plugin-react-native-unhandled-rejection) Fix TypeError when using react native 0.63 or 0.64 #1770

v7.17.0 (2022-06-20)

Added

  • Support Error.cause #1759

Changed

  • (react-native) Update bugsnag-cocoa from v6.16.1 to v6.18.0
  • (plugin-react-native-unhandled-rejection) Update handler to catch unhandled rejections when using hermes #1757

v7.16.7 (2022-05-31)

Added

  • Added Bugsnag.isStarted() to check whether Bugsnag has initialized #1737

Changed

  • Update type definitions for Bugsnag.notify() #1743

Fixed

v7.16.6 (2022-05-25)

Changed

v7.16.5 (2022-05-18)

Changed

  • (react-native) Update bugsnag-android to v5.22.3
  • (react-native-cli) Fix 'insert' command with RN 0.68+ #1726
  • (plugin-react|plugin-vue|plugin-react-navigation|plugin-react-native-navigation) Set @bugsnag/core to be an optional peer dependency to avoid unmet peer dependency warnings #1735
  • (electron) Improved error message when no apiKey is provided to Bugsnag.start() #1738
  • (plugin-simple-throttle) Warning message added when error handler has exceeded maxEvents #1739

v7.16.4 (2022-05-03)

  • (expo) This release marks a change in the version scheme used by @bugsnag/expo and a move to its own repo, bugsnag-expo

    From this version onwards, @bugsnag/expo will match the Expo SDK version number. For example, @bugsnag/expo v44 supports Expo SDK 44. When updating to a new Expo SDK version, you should also update @bugsnag/expo

Fixed

  • (plugin-react) Add 'children' prop to BugsnagErrorBoundary #1723
  • (react-native) Fix reporting of RCTFatal() crashes on iOS. #1719
  • (plugin-electron-app-breadcrumbs) Fix a TypeError caused by using a BrowserWindow object after it is destroyed #1722

v7.16.3 (2022-04-05)

Changed

  • (react-native) Update bugsnag-android to v5.22.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
    • 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. bugsnag-android#1605 bugsnag-android#1606
    • Fixed an issue where an uncaught exception on the main thread could in rare cases trigger an ANR. bugsnag-android#1624
    • 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 after Bugsnag.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 whilst Bugsnag.start is still in-flight. It is now safe to call any Bugsnag static method once Bugsnag.start has begun executing, as access to the client singleton is controlled by a lock, so the new isStarted method (see above) should only be required where it cannot be determined whether the call to Bugsnag.start has begun or you do not want to wait.
    • bugsnag-android#1638
    • Calling bugsnag_event_set_context with NULL context correctly clears the event context again bugsnag-android#1637

Fixed

  • (plugin-express): send the request body (if present) as event.request.body rather than event.metadata.request.body #1702
  • (plugin-restify): Include request body #1701

v7.16.2 (2022-03-09)

Fixed

  • (expo): preliminary support for the Expo EAS Update. Please send us feedback on how we can improve our support! kennethlynne #1686 #1695

Changed

  • (plugin-react-navigation): Allow React Navigation v6 as a peer dependency #1691

7.16.1 (2022-02-02)

Fixed

  • (react-native) Handle circular references in metadata before it's sent to the native notifier layer #1673

Changed

7.16.0 (2022-01-25)

Added

Changed

7.15.1 (2022-01-18)

Changed

7.15.0 (2022-01-18)

  • This release is broken and has been deprecated on npm

7.14.2 (2022-01-05)

Fixed

  • (react-native-cli): Fix Xcode build error for ejected Expo apps #1623

Changed

  • (react-native) Update bugsnag-android to v5.17.0
  • (react-native): Update bugsnag-cocoa to v6.15.1
    • Load configuration from the plist instead of using defaults when calling Bugsnag.start(withApiKey:) #1245
    • Include metadata in breadcrumbs for UIWindow / NSWindow notifications. #1238
    • Use LC_FUNCTION_STARTS to improve symbolication accuracy. #1214

7.14.1 (2021-11-29)

Fixed

  • (plugin-network-breadcrumbs): Fix a crash when request URL is not a string #1598
  • (in-flight): Fix Typescript definition exporting a type instead of a value skirsten #1587
  • (plugin-electron-net-breadcrumbs): Don't leave breadcrumbs for requests to the minidumps endpoint #1597
  • Add a default export to plugins that were missing one #1599

7.14.0 (2021-11-17)

This release adds support for reporting native crashes to @bugsnag/electron.

If you are using modules with native extensions, you can upload Breakpad symbol files to Bugsnag to symbolicate native errors.

Note: Bugsnag On-premise does not currently support uploading minidump files. This will be supported in an upcoming release.

  • (electron): Add support for reporting native crashes #1581

7.13.3 (2021-11-08)

Fixed

  • (plugin-network-breadcrumbs): Fix a crash when request data goes missing #1564

Changed

  • (expo): Add support for Expo SDK v43 foolem #1556 / #1566
  • (react-native): Update bugsnag-cocoa to v6.14.2
    • Fix missing configuration.user and manually resumed session info in unhandled errors. bugsnag-cocoa#1215
    • 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
    • Prevent a crash that can occur when -[BSGURLSessionTracingProxy forwardInvocation:] calls -[NSInvocation selector]. bugsnag-cocoa#1208
    • Apply redactedKeys to breadcrumb metadata. bugsnag-cocoa#1204
  • (react-native): 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

7.13.2 (2021-10-13)

Changed

  • (react-native): Update bugsnag-android to v5.14.0
  • (react-native): Update bugsnag-cocoa to v6.14.0

7.13.1 (2021-09-27)

Changed

7.13.0 (2021-09-06)

Changed

  • (react-native): Update bugsnag-cooca to v6.12.0
    • Events now include a thermalState property in the device 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-cooca#1171
    • Fatal app hangs will no longer be reported if the willTerminateNotification is received. bugsnag-cooca#1176
    • Add breadcrumbs for UIScene notifications. bugsnag-cooca#1165
  • (react-native): Update bugsnag-android to v5.12.0

7.12.0 (2021-08-18)

Changed

  • (expo): Add support for Expo SDK v42 #1488
  • (react-native): Update bugsnag-android to v5.11.0
  • (react-native): Update bugsnag-cocoa to v6.10.4

7.11.0 (2021-07-26)

Added

  • Server framework plugins now honour the autoDetectErrors configuration option #1464

Changed

Fixed

  • Breadcrumbs will now be left when enabledBreadcrumbTypes is null #1466
  • Avoid crash when enabledBreadcrumbTypes is null #1467
  • (plugin-koa): Fix the Koa plugin suppressing other error handlers #1482

7.10.5 (2021-07-05)

Fixed

  • (plugin-console-breadcrumbs): Ensure console breadcrumbs do not run in Expo's dev environment and obscure log line numbers #1453
  • (browser): "Bugsnag" loaded breadcrumb now has the type "state" rather than "navigation" #1460
  • (plugin-react-native-unhandled-rejections): Remove flow syntax #1461

Added

  • (expo): User ID now defaults to device.id if no user is set #1454
  • (browser): User ID now defaults to device.id if no user is set (when collectUserIp=false) #1456

Changed

  • (react-native): Update bugsnag-cocoa to v6.10.0
    • Fix an issue that could cause C++ exceptions with very long descriptions to not be reported. bugsnag-cocoa#1137
    • Improve performance of adding metadata by using async file I/O. bugsnag-cocoa#1133
    • Improve performance of leaving breadcrumbs by using async file I/O. bugsnag-cocoa#1124

7.10.4 (2021-06-28)

Fixed

  • (expo): Prevent internal NetInfo connectivy requests from showing as breadcrumbs #1443

Changed

  • (react-native): Update bugsnag-cocoa to v6.9.7
    • Prevent some potential false positive detection of app hangs. bugsnag-cocoa#1122
    • Improve accuracy of app hang event information to better reflect state at time of detection. bugsnag-cocoa#1118

7.10.3 (2021-06-15)

Fixed

  • (react-native): Ensure source maps are uploaded correctly in Xcode for RN <0.64 #1438

Changed

  • (react-native): Update bugsnag-cocoa to v6.9.5

7.10.2 (2021-06-07)

Fixed

  • (react-native): Prevent unhandled promise rejections being split into multiple log calls #1419

Changed

7.10.1 (2021-05-25)

Changed

Fixed

  • (react-native): Always upload JS bundle (rather than .hbc bundle) during Xcode source map upload build phase

v7.10.0 (2021-05-18)

This release adds @bugsnag/electron, a notifier for use on apps that are built using Electron.

Added

  • (electron): a new top-level notifier @bugsnag/electron and related plugins

Changed

  • (node): File paths in stacktraces now always use / as the path separator
  • (node): Surrounding code can be fetched from file paths that are relative to the project root
  • (react-native): Update bugsnag-android to v5.9.2

v7.9.6 (2021-05-05)

Added

  • (react-native-cli): Add support for ejected Expo apps #1365
  • (react-native): Add support for Xcode 12 #1314

Changed

  • (react-native): Update bugsnag-cocoa to v6.9.1
    • Fix a possible deadlock when writing crash reports for uncaught Objective-C exceptions. bugsnag-cocoa#1082
    • Fix missing context for crash, OOM, and app hang errors. bugsnag-cocoa#1079
    • Fix app properties in OOMs for apps that override appType, appVersion, bundleVersion or releaseStage in their config. bugsnag-cocoa#1078
    • event.threads will now be empty, rather than containing a single thread, if sendThreads dictates that threads should not be sent. bugsnag-cocoa#1077

v7.9.5 (2021-04-26)

Changed

  • (react-native): Update bugsnag-cocoa to v6.9.0
    • App hangs that occur while an app is in the background will no longer be reported. bugsnag-cocoa#1075
    • Add binaryArch and runningOnRosetta to the app metadata tab. bugsnag-cocoa#1073
    • Bugsnag can now be used without AppKit, allowing use in daemons and other processes running in non-UI sessions. bugsnag-cocoa#1072
  • (react-native): Update bugsnag-android to v5.9.1

v7.9.4 (2021-04-19)

Changed

  • (react-native): Update bugsnag-cocoa to v6.8.4
    • macCatalystiOSVersion is now reported for apps built with Mac Catalyst and iOS app running on Apple silicon. bugsnag-cocoa#1066
    • Fix crashes that could occur in bsg_recordException in low memory conditions. bugsnag-cocoa#1068
    • Fix a crash in bsg_ksmachgetThreadQueueName. bugsnag-cocoa#1065
    • Improve timestamp accuracy to fix breadcrumbs that are reported to occur after the error. bugsnag-cocoa#1062

Fixed

  • (plugin-aws-lambda): Change Typescript definitions for compatibility with @types/aws-lambda #1353 (k-ish)

v7.9.3 (2021-04-12)

Changed

v7.9.2 (2021-04-06)

Changed

v7.9.1 (2021-03-25)

Changed

v7.9.0 (2021-03-16)

Added

  • (plugin-aws-lambda): Add support for Node.js on AWS Lambda. See the docs for usage. #1334

Changed

  • (plugin-koa): Ensure ctx.request.body is present on the event's request property by collecting it at the last possible moment #1292
  • (react-native): Update bugsnag-cocoa to v6.7.1
    • Fix os_proc_available_memory runtime link error on Mac Catalyst. bugsnag-cocoa#1025
    • Fix missing osName and osVersion for errors reported from app extensions that do not link against UIKit. bugsnag-cocoa#1022
    • Fix incorrect freeMemory for errors reported via notify() bugsnag-cocoa#1021

v7.8.2 (2021-03-04)

Changed

Fixed

  • (expo): Ensure Expo plugins depend on same version of NetInfo package #1319

v7.8.1 (2021-02-25)

Changed

v7.8.0 (2021-02-22)

Changed

  • (react-native): Update bugsnag-cocoa to v6.6.3
  • (react-native): Store source maps in a temporary directory during Xcode build phases to support source map filenames with whitespace. See source map upload docs for info on how to change your build script to utilize this. #1289

Added

  • (react-native): Capture additional native stack for native promise rejections #1253

v7.7.0 (2021-02-15)

Changed

  • (react-native): Update bugsnag-android to v5.6.2
  • (react-native): Update bugsnag-cocoa to v6.6.1
    • Fix compiler warnings when importing Bugsnag from Objective-C sources that do not use ARC. bugsnag-cocoa#985
    • Fix a rare crash that could occur in the event of JSON parsing failures. bugsnag-cocoa#987
  • (plugin-vue): Add support for Vue 3 #1280

Fixed

  • (plugin-inline-script-content): Ensure inline script content isn't included when the DOM onreadystatechange interactive event is missed. #1290

v7.6.1 (2021-01-26)

Changed

  • (react-native): Update bugsnag-cocoa to v6.6.0
  • (react-native): Update bugsnag-android to v5.5.1
    • Alter ANR SIGQUIT handler to stop interfering with Google's ANR reporting, and to avoid unsafe JNI calls from within a signal handler bugsnag-android#1078
    • Alter HTTP requests to stop using chunked transfer encoding bugsnag-android#1077
    • Allow null device IDs, preventing rare crash in Bugsnag initialization bugsnag-android#1083

Fixed

  • (react-native): Ensure plugin usage is compatible with running an app in a remote debugger #1250

v7.6.0 (2021-01-18)

As of 7.6.0 the monorepo contains @bugsnag/react-native-cli, a new command line tool to help set up Bugsnag in React Native projects.

Added

  • (react-native-cli): New @bugsnag/react-native-cli package. #1214
  • (react-native): Source map upload script to be run as an Xcode build phase. #1214

Changed

  • (expo): app.type will now default to 'ios' or 'android'. 1244
  • (react-native): Deprecate use of bugsnag-react-native.gradle in favour of Bugsnag Android Gradle Plugin. #1214
  • (react-native): Update bugsnag-cocoa to v6.5.1
    • Fix a regression where OOM events were missing session information. bugsnag-cocoa#963
    • Make maxPersistedEvents and maxPersistedSessions default to 32 and 128, respectively. bugsnag-cocoa#966

Fixed

  • (react-native): Ensure unhandled promise warning is logged in development #1235
  • (core): the OnErrorCallback type definition now allows Promise<boolean> as a return type. #1224

v7.5.6 (2021-01-11)

Changed

  • (expo): Add support for Expo SDK v40 #1219

  • (react-native): Update bugsnag-cocoa to v6.5.0

  • (react-native): Update bugsnag-android to v5.5.0

    This release supports initializing Bugsnag in multi processes apps. If your app uses Bugsnag in multiple processes, you should initialize Bugsnag with a unique persistenceDirectory value for each process. Please see the docs for further information.

v7.5.5 (2020-12-14)

Changed

  • (react-native): Update bugsnag-cocoa to v6.4.1
    • Place "unhandledOverridden" inside "severityReason" instead of at the top level. #937
    • Allow overriding the "unhandled" flag in error callbacks. #921 #912
    • Fix unexpected exception behavior when started without an API key. #931
  • (react-native): Update bugsnag-android to v5.4.0
    • Prevent potential SHA-1 hash mismatch in Bugsnag-Integrity header for session requests #1043
    • Make event.unhandled overridable for NDK errors #1037
    • Make event.unhandled overridable for React Native errors #1039
    • Make event.unhandled overridable for JVM errors #1025
  • (expo): Update the postPublish hook to use the new @bugsnag/source-maps library. [#1124]

v7.5.4 (2020-12-10)

Changed

  • (expo): Add integrity header to verify Error and Session API payloads have not changed. #1172
  • (react-native): Update bugsnag-android to v5.3.1
    • Add integrity header to verify Error and Session API payloads have not changed. bugsnag-android#978
    • Prevent potential SHA-1 hash mismatch in Bugsnag-Integrity header #1028
  • (react-native): Update bugsnag-cocoa to v6.3.0
    • Add integrity header to verify Error and Session API payloads have not changed. bugsnag-cocoa#881
    • Out Of Memory errors now include more information, including custom metadata and user information. bugsnag-cocoa#915 bugsnag-cocoa#908
    • Fixed incorrect app version reported when sending crash reports from older versions of Bugsnag (before 6.2.3) bugsnag-cocoa#911
    • Fixed a rare crash in -[BugsnagClient computeDidCrashLastLaunch] bugsnag-cocoa#917
  • (core) The event.unhandled flag can now be changed in callbacks #1148

v7.5.3 (2020-12-01)

  • (react-native): Update bugsnag-cocoa to v6.2.5
    • Fixed a rare crash due to a race condition in BugsnagSystemState. bugsnag-cocoa#893
    • Out Of Memory errors are no longer reported if a device reboot was detected. bugsnag-cocoa#822

v7.5.2 (2020-11-09)

Changed

v7.5.1 (2020-10-23)

Fixed

  • (browser): Added missing type definition for trackInlineScripts option #1102 / #1097

Changed

  • (expo): Bump expo dependency versions to keep in sync #1103
  • (react-native): Update bugsnag-cocoa to v6.2.2
    • Support "foreground" duration in MacOS as well. bugsnag-cocoa#848
    • Timestamp accuracy in reports has been increased from seconds to milliseconds. bugsnag-cocoa#847
    • Calculation of "foreground" duration now also includes time in UIApplicationStateActive and UIApplicationStateInactive states in order to match Apple's definition of "foreground". bugsnag-cocoa#839
  • (react-native): Update bugsnag-android to v5.2.2

7.5.0 (2020-10-08)

Added

  • (plugin-react-native-navigation): New plugin that integrates with React Native Navigation. #1065
  • (plugin-react-navigation): New plugin that integrates with React Navigation. #1067

7.4.0 (2020-10-01)

Added

  • (browser): Attach an anonymous device ID to error reports and sessions when the new generateAnonymousId option is enabled. #1072

Changed

  • (react-native): Allow plugins to be set in the JS layer. #1064
  • (expo): Add support for Expo SDK v39 #1052
  • (react-native): Update bugsnag-cocoa to v6.1.7 #1081
  • (react-native): Update bugsnag-android to v5.2.1 #1080

7.3.5 (2020-09-16)

Fixed

  • (react-native): Update bugsnag-cocoa to 6.1.4. Fixes: Copy the metadata observer list rather than mutating it directly. #1048

7.3.4 (2020-09-10)

Fixed

  • (react-native): Suppress unchecked cast warnings for React Native Android #1027
  • (react-native): Provide proguard rules to ensure reflection works on minified/obfuscated Android builds #1030

Removed

  • (react-native): Remove unnecessary log on iOS #1028

7.3.3 (2020-08-26)

Added

  • (plugin-react): Make type definitions BugsnagErrorBoundary and BugsnagPluginReactResult available for external use. 934 / #1009

Changed

  • Use a peer dependency on @bugsnag/core in plugins #1012

Fixed

  • (expo): Ensure type definitions allow config to be supplied without an apiKey, as it may be supplied in app.json instead. #1010
  • (plugin-angular): Update bundles and package entrypoints to support the Ivy renderer. #994
  • (react-native): Add codeBundleId to config type definition. #1011

7.3.2 (2020-08-17)

Fixed

  • (react-native): Ensure type definitions are included the @bugsnag/react-native package. #1002

7.3.1 (2020-08-11)

Fixed

  • (plugin-react): Reinstate updated code after a bad merge on the type definitions. #987

7.3.0 (2020-08-10)

As of this version, this repo contains our brand new notifier for React Native @bugsnag/react-native. See the docs and upgrade guide for more info.

Some minor internal changes to shared code were made to support the new notifier, but no external changes are required for existing @bugsnag/js or @bugsnag/expo users to upgrade to this version.

7.2.1 (2020-07-22)

Fixed

  • (plugin-vue): Ensure the window.Vue fallback does not throw in environments where window is undefined. #928
  • (plugin-react): Ensure the window.React fallback does not throw in environments where window is undefined. #930
  • (types): Use Record<string,string> instead of object for the stackframe.code property on events. #929

7.2.0 (2020-07-06)

Added

  • (browser|node) Record the length of time the app has been running when an error occurs #881
  • (plugin-browser-device): Add device orientation to error reports #881
  • (plugin-expo-device): Add device manufacturer and model name for non-iOS devices to error reports #881
  • (plugin-expo-device): Add total memory to error reports #881
  • (plugin-node-device): Add OS name, OS version, total memory and free memory to error reports #881

Changed

  • Update @bugsnag/safe-json-stringify to make redactedKeys case insensitive when using strings #905
  • (expo): Add support for Expo SDK v38 #781

Fixed

  • (plugin-express): Ensure req.body is always present in metadata by collecting it at the last possible moment #872

7.1.1 (2020-05-26)

Fixed

  • (plugin-express): Use import syntax that works without TypeScript's esModuleInterop compiler flag #866
  • (expo-cli): Ensure version detection logic for @bugsnag/expo works after v7.0.0 #865
  • (core): Ensure callbacks supplied in config permit functions with no named arguments #863

7.1.0 (2020-05-21)

This update contains some substantial changes to plugin type definitions. If you are using TypeScript alongside a framework, you may need to make changes to your app. Please refer to the upgrade guide.

Changed

  • (plugin-react|plugin-vue): Support late passing of framework reference #839

Added

  • (plugin-react): Add type definitions for Bugsnag.getPlugin('react') #839
  • (plugin-vue): Add type definitions for Bugsnag.getPlugin('vue') #839
  • (plugin-react): Add clearError prop to ErrorBoundary #797
  • (plugin-express|plugin-koa|plugin-restify): Add full type definitions for plugins #853

7.0.2 (2020-05-12)

Fixed

  • (types): Correct init static method name to start #847

7.0.1 (2020-04-27)

Fixed

  • (plugin-vue): Fix plugin type definitions #809
  • (delivery-expo): Ensure Expo delivery logs event details correctly (instead of undefined) #804
  • (expo-cli): Ensure Expo cli inserts correct code depending on the version of the notifier #808
  • (expo): Ensure types allow .start() with no arguments #817

7.0.0 (2020-04-14)

Added

  • Add onBreadcrumb and onSession callbacks. #665
  • Add pauseSession() and resumeSession() methods to Client #666
  • Add static Bugsnag client interface #685
  • Add getUser() and setUser() methods to Session #692

Changed

  • Migrate lint tooling to ESLint for both .js and .ts source files #644
  • Rename autoNotify -> autoDetectErrors, and add enabledErrorTypes option for granularity #706
  • Rename autoCaptureSessions -> autoTrackSessions and simplify validation logic #647
  • Rename report to event #646
  • Rename notifyReleaseStages -> enabledReleaseStages #649
  • Rename beforeSend -> onError, remove event.ignore() and refactor callback logic #654
  • Update signature of notify(err, opts?, cb?) -> notify(err, onError?, cb?) for a canonical way to update events #655
  • Simplify client configuration, and store resulting config privately #656
  • User is now stored privately on client and event and updated via get/set methods #657
  • Remove individual breadcrumb flags in favour of enabledBreadcrumbTypes, rename breadcrumb.{ name -> message, metaData -> metadata }, and update leaveBreadcrumb() type signature to be more explicit #650
  • Rename metaData -> metadata and add consistent add/get/clearMetadata() methods to Client/Event for manipulating metadata explicitly, rather than mutating a property #658
  • Update leaveBreadcrumb() type signature to return void. #661
  • Refactor notify() to not accept events (they go via _notify() instead). Consolidate Event static methods into a single .create() utility, used by all automatic error detection components. #664
  • Stop applying default error class/message when none is supplied #676
  • Remove Bugsnag* prefix from internal class names #679
  • Rename and make private the Session method trackError() -> _track() #675
  • Update Event to support multiple errors #680
  • Move context to a private property on Client, and get/set via getContext()/setContext() #681
  • Update @bugsnag/safe-json-stringify to replace redacted values with [REDACTED] #683
  • Update collectUserIp option to use [REDACTED] instead of [NOT COLLECTED] for consistency #743
  • Refactor type definitions #682
  • Ensure automatic context is not used when setContext(null) has been called #694
  • Rename filters option to redactedKeys #704
  • Rename device.modelName to device.model #726
  • Rename client.refresh() to client.resetEventCount() #727
  • client.use(plugin) has been removed and plugins must now be passed in to configuration #759
  • Invalid configuration (except for apiKey) now falls back to default values rather than throwing an error #759

Removed

  • Remove non-public methods from Client interface: logger(), delivery() and sessionDelegate() #659
  • Remove client.request property #672
  • Remove client.device property #673
  • Remove client.app property #677
  • Move breadcrumbs to a private property on client._breadcrumbs #681

6.6.1 (2020-04-03)

Fix

  • (expo): Ensure Expo packages that depend on NetInfo have their versions locked #796
  • (expo-cli): Update Expo versions installed by the cli #796

Note, alongside this release, additional patches were made to previous minor versions of @bugsnag/expo: 6.5.3 and 6.4.4. This is to ensure the correct version of NetInfo is depended on for SDK versions 36 and 34 respectively.

6.6.0 (2020-04-02)

Changed

  • (expo): Add support for Expo SDK v37 #781

6.5.2 (2020-02-05)

Changed

  • (node): Use util.inspect() on plain object errors when logging their value #696

Fixed

  • (delivery-x-domain-request): Correct this->client reference when attempting to log an error #722

6.5.1 (2020-01-08)

Fixed

  • (expo): Pin @react-native-community/netinfo dependency to exact version bundled by Expo #691
  • (plugin-express), (plugin-restify): Send request metadata as the correct notify() parameter #687

6.5.0 (2019-12-16)

Added

  • (expo): Add support for breaking changes in Expo SDK v36 #670
  • (expo-cli): Choose a compatible version of @bugnsnag/expo for SDK v33-35 #670

Fixed

  • (plugin-network-breadcrumbs): Fixes the window.fetch monkey-patch to also accept Request. #662

6.4.3 (2019-10-21)

Fixed

  • (browser): Add browser alias to dist/types/bugsnag to fix Angular build failure #632 (GDreyV)

6.4.2 (2019-10-09)

Fixed

  • (plugin-angular): Ensure Node notifier matches the type interface in the .d.ts file #626

6.4.1 (2019-09-24)

Fixed

  • (plugin-koa): Ensure unhandled Koa errors are logged out and that non-errors don't generate two reports #614
  • (plugin-inline-script-content): Tolerate errors when trying to call existing installed handler #613 (fixes #608)
  • (plugin-inline-script-content): Ensure line numbers are correct when error is at line 1/2/3 #616
  • (plugin-koa|express|restify): Ensure clientIp and referer are properly collected #617 (fixes #615)

6.4.0 (2019-08-13)

Changed

  • (expo): Support Expo SDK 34, dropping support for versions < 33 #610

Added

  • (expo-cli): Check for the current version of Expo and install an appropriate version of @bugsnag/expo #610

Fixed

  • (plugin-inline-script-content): Tolerate WebDriverException: Message: Permission denied to access property "handleEvent" errors when running in selenium #605
  • (core): Tolerate being bundled in strict mode #584
  • (plugin-inline-script-content): Ensure event handlers added before Bugsnag can be removed #582
  • (core): Update error-stack-parser to ensure spaces in filenames are parsed correctly #612

6.3.2 (2019-06-27)

Fixed

  • (plugin-inline-script): Ensure inline script content callback doesn't cause error logs when there are no stackframes #559 / #563
  • (plugin-angular): Bundle an ES5 and an ES6 version of the plugin to support various Angular build settings #565 / #563

6.3.1 (2019-06-17)

Fixed

  • (node): Ensure agent is passed through to http(s) request for proxy support #548 / #546

6.3.0 (2019-05-28)

Added

  • (expo): Support configuration of post-publish hook, allowing On-premise users to customize the build/source map endpoints. #542

Changed

  • (plugin-inline-script-content): Overhaul inline script tracking #528
  • (node): Add Node version string to report and session payloads (device.runtimeVersions) #537
  • (core): Update docs url so that it doesn't follow a redirect #536
  • (plugin-navigation-breadcrumbs): Compile away _restore() function from output bundle which is only used in tests #533

Fixed

  • (plugin-koa): Send the correct status code when handling ctx.throw() errors #541
  • (plugin-angular): Target ES6 so that classes in the build are native, not polyfilled #540
  • (plugin-angular): Support subsequent rebuilds of an Angular app in AOT mode #539
  • (plugin-node-surrounding-code): Truncate line length so that minified code doesn't exceed payload limit #531

6.2.0 (2019-04-23)

This release adds @bugsnag/expo, a notifier for use on React Native apps that are built using Expo.

A small internal change was made to facilitate this new notifier, but there are no changes required for existing users of documented APIs.

Added

  • (expo): a new top-level notifier @bugsnag/expo including a whole bunch of packages:
    • @bugsnag/delivery-expo - Expo-specific delivery mechanism which caches on disk when a crash happens, or the network is not available
    • @bugsnag/plugin-expo-app - gathers app information
    • @bugsnag/plugin-expo-device - gathers device information
    • @bugsnag/plugin-react-native-app-state-breadcrumbs - collects breadcrumbs when the app transitions to the foreground/background
    • @bugsnag/plugin-react-native-connectivity-breadcrumbs - collects breadcrumbs when the state of the network changes
    • @bugsnag/plugin-react-native-global-error-handler - reports unhandled errors
    • @bugsnag/plugin-react-native-orientation-breadcrumbs - collects breadcrumbs when the device orientation changes
    • @bugsnag/plugin-react-native-unhandled-rejection - reports unhandled promise rejections

Changed

  • (core): internal delivery interface now receives the client it is attached to on creation, and the sendReport/sendSession methods are no longer passed the logger and config objects which can be accesses on the client #489 (Note: this was an undocumented internal API)

6.1.0 (2019-04-12)

Added

  • (core): Improvements to logging and available information when error reports are not sent #515

Changed

  • (delivery-node): Error stack is now included in first argument to logger #486

Removed

  • (core): Stacktrace is omitted in error breadcrumbs (it's not used by the dashboard) #512

Fixed

  • (plugin-navigation-breadcrumbs): startSession() is not called when autoCaptureSessions=false #514
  • (plugin-express): Express/Connect now send a 500 (not 200) HTTP status when about to crash #513
  • (core): Bad logic in notify() error normalisation #516

6.0.0 (2019-02-21)

Removed

  • request is no longer used for sending error reports and sessions. This results in a much smaller dependency footprint. If you were using the proxy option or http(s)_proxy environment variables you will need to update your implementation to pass in a proxy agent. See the proxy guide on our docs for more information.

Fixed

  • Prevent incorrect warning about missing peer dependencies when using yarn (#478)
  • Deduplicate module in browser bundle (#479)

5.2.0 (2019-01-21)

Added

  • Support serialising error objects (via. @bugsnag/safe-json-stringify@v4.0.0) (#356, #458)

Fixed

  • Fixed granular breadcrumb config logic (#461, #465, #466)

5.1.0 (2018-12-19)

Fixed

  • Support @bugsnag/node being consumed in a Webpack bundle for Node (#450, #441)

5.0.2 (2018-12-06)

Fixed

  • Tolerate errors accessing properties of an unhandled rejection event (#394, #442)
  • Improve robustness of window.onerror callback, supporting additional jQuery parameter (#443, fixing #393 and #392)
  • Add CORS header Access-Control-Allow-Origin: * to uploaded S3 assets (#444)

5.0.1 (2018-11-29)

Fixed

  • Ensure objects with a null prototype or bad toString() implementation don't cause an error in console breadcrumbs (#429)
  • Ensure user ip is not collected when collectUserIp=false but user.id is explicitly undefined (#428)
  • Ensure previous window.onerror callback is always called (#427)
  • Ensure previous window.onreadystatechange callback is called (#426)
  • Ensure log methods are correctly called and that relevant callbacks are called in the event of a report failure (#437)

Added

  • Nuxt.js example (#425)

5.0.0 (2018-11-21)

This is the first release of Bugsnag notifiers under the @bugsnag namespace.

This "universal" repository combines Bugsnag's browser and Node.js notifiers and so for continuity with the browser version, which was at v4, the starting point for this monorepo and all of its packages is v5.0.0.

See UPGRADING.md for guidance on how to update your application.

4.7.3 (2018-08-01)

Removed

  • Stop sending stacktrace with breadcrumb metadata

Fixed

  • Added missing instance properties to Breadcrumb TypeScript definition

4.7.2 (2018-06-18)

Fixed

  • Workaround for iOS9 Safari CSP issue which caused bugsnag-js to throw an error (#358, #357)

4.7.1 (2018-06-04)

This release fixes a couple of bugs with stacktrace parsing.

Fixed

  • Incorrect parsing of stacktraces for errors in Chrome that have no stackframes (#355)
  • Incorrect parsing of stacktraces for errors in Firefox/Safari that have "@" in the URL path (#354)

4.7.0 (2018-05-31)

Note: this release alters the behaviour of the notifier to track sessions automatically.

As part of this change, the way in which URLs are configured has been updated:

- endpoint: 'https://bugsnag-notify.example.com',
- sessionEndpoint: 'https://bugsnag-sessions.example.com',
+ endpoints: {
+  notify: 'https://bugsnag-notify.example.com',
+  sessions: 'https://bugsnag-sessions.example.com'
+ }

endpoints and sessionEndpoints are now deprecated but still supported. Note that session tracking will be disabled if the notify endpoint is configured but the sessions endpoint is not – this is to avoid inadvertently sending session payloads to the wrong server.

Added

  • A new end-to-end/black box test suite has been added (#351)

Changed

  • autoCaptureSessions default value was false and is now true (#341)

Deprecated

  • endpoint and sessionEndpoints have been deprecated and combined into a single new option: endpoints (#341)

Removed

  • The old e2e test suite has been removed (#351)

4.6.3 (2018-05-10)

Fixed

  • Use the correct network breadcrumb type (network -> request). Fixes network breadcrumbs not displaying in the dashboard. (#348)

4.6.2 (2018-05-08)

The previous version (v4.6.1) was removed from the npm registry and the CDN because of critical issue surrounding history state methods. This release resolves that issue. The release notes for v4.6.1 are included here too for completeness.

Fixed

  • Fix history API url parameter logic (#347)
  • Only pass in url parameter to history methods when it is not undefined. Fixes a bug in IE11 where it converts undefined to a string, causing a redirect to /undefined. (#342)
  • Prevent a crash in IE10 when accessing history.state. (#345)

4.6.1 (2018-05-03)

A couple of fixes for IE10/11 relating to quirks in their implementation of the history APIs.

Fixed

  • Only pass in url parameter to history methods when it is not undefined. Fixes a bug in IE11 where it converts undefined to a string, causing a redirect to /undefined. (#342)
  • Prevent a crash in IE10 when accessing history.state. (#345)

4.6.0 (2018-04-20)

Added

  • It is now possible to customize the logger by setting the logger option of the configuration object. A custom logger must have the methods debug, info, warn and error. To completely disable logging, set logger: null. (#340)

Fixed

  • A custom version of safe-json-stringify now fully protects against circular structures returned from toJSON() and arbitrarily wide/deep structures (#338)

4.5.0 (2018-04-06)

Added

  • New breadcrumbs! Breadcrumbs are now left when requests are made using XMLHttpRequest (ajax) or fetch(). This works with all request libraries out of the box: jQuery, axios, superagent etc. Metadata includes HTTP method, request url and the status code (if available). By default network breadcrumbs are collected all with other autoBreadcrumb types. If you don't want to collect network breadcrumbs, set networkBreadcrumbsEnabled: false. (#334)

Changed

  • As part of #334 envify was added to compile out plugin "destroy" logic that was only required for tests.

4.4.0 (2018-03-15)

Changed

  • Switch from a protocol-relative default for endpoint and sessionEndpoint to "https://". IE8/9 will attempt to send via http if the protocol of the current page is http. Otherwise all requests will now go via https unless configured otherwise (#333).

Fixed

  • Fix rollup bundling issue (switching to a forked version of cuid) (#331)

4.3.1 (2018-03-07)

Changed

  • Perf improvements for breadcrumbs, most notably console log methods with lots of data (#329)

4.3.0 (2018-02-23)

Added

  • Stub exported types to appease Angular's JIT compiler in dev mode (#323)
  • Make hasStack(err) check more strict, making the unhandled rejection handler more robust and useful (#322)

Changed

  • Strip query strings and fragments from stackframe files (#328)
  • Switch to upstream version of fast-safe-stringify

4.2.0 (2018-01-24)

This release fixes a few issues with the fetching of inline script content, particularly after the location has changed due to window.history methods.

Unhandled promise rejection should also contain more actionable information (when the rejection reason is a DOMException, null, or undefined). Support for Bluebird promises was also added.

Added

  • Support for unhandled bluebird promise rejections (#317)
  • Option to prevent IP collection (#313)

Changed

  • Improved serialization of promise rejection reasons (#317)
  • If a string was thrown and not caught, use it as the error message (#319)

Fixed

  • Collection of inline script content improved (#320, #318)

4.1.3 (2018-01-15)

Fixed

  • Fix call to non-existent logger.log() (credit @alexstrat #304)

4.1.2 (2018-01-09)

Added

  • Session sending now respects notifyReleaseStages option

Changed

  • Rename option enableSessionTracking -> autoCaptureSessions for consistency with other platforms

4.1.1 (2018-01-06)

Fixed

  • metaData and user were incorrectly attached to report.app (credit @tremlab #300)

4.1.0 (2018-01-05)

Added

  • Support for tracking sessions and overall crash rate by setting sessionTrackingEnabled to true. In addition, sessions can be indicated manually using bugsnagClient.startSession() (#296)
  • user and metaData can now be supplied in configuration object (#299)
  • Bower and jspm support has been added as a result of #297 and some additional configuration

Changed

  • dist directory (built assets) are now stored in git (#297)

4.0.3 (2017-12-15)

Changed

  • Handle inline script content per older notifiers for consistent grouping (#289)

Fixed

  • Correctly capture the page contents when an inline script error happens (#289)

4.0.2 (2017-12-14)

Added

  • Add more type exports (#286)
  • Add frameworks section to README.md
  • Add READMEs to examples

Changed

  • Add more detail to JS example (credit @tremlab, #284)
  • Ensure empty/useless stackframes are removed
  • Removed arbitrary timeouts from tests to alleviate CI flakiness

Fixed

  • Expose metaData and user types on Client class (#287)
  • Give navigation details the correct type (some were marked as "manual")

4.0.1 (2017-12-07)

Changed

  • Improve type definition for notify() error argument (credit @rokerkony)
  • Remove process.env.NODE_ENV inferred releaseStage
  • Sidestep uglify's drop_compat option to prevent it from breaking bugsnag

4.0.0 (2017-12-04)

Version 4 is a milestone release. A complete re-write and modernization for Bugsnag's JS error reporting.

See UPGRADING.md for migrating from v3 and see docs.bugsnag.com for full documentation.

🚀