Changelog

Improving AppSignal, one deploy at a time.

Nov 28, 2024

Custom backtrace sanitization and other improvements

JavaScript@appsignal/javascript@1.5.0

Added

  • Allow custom backtrace sanitization.

    Warning: This is an advanced feature meant for specific use cases. For most use cases, you should not need this functionality. If in doubt, leave matchBacktracePaths unset.

    Using matchBacktracePaths will cause public sourcemap detection to fail. If using matchBacktracePaths, use our private sourcemap API to upload sourcemaps to AppSignal.

    Some applications, such as those running on Electron or React Native environments, emit backtrace lines containing paths relative to the device in which the application is running.

    The unpredictability of these backtrace line paths interferes with the correct functioning of backtrace error grouping, and makes it impossible to upload sourcemaps for these files using our private sourcemap API, as it is not possible to know the expected path beforehand.

    You can set the matchBacktracePaths configuration to a list of one or more regexes, which will be used to attempt to match the relevant section of the backtrace line path.

    For example, suppose you have an Electron application, which your users install at unpredictable locations. Your backtrace line paths may look something like this, with the username changing for each installation:

    Shell
    /Users/${USERNAME}/Applications/CoolBeans.app/Contents/Resources/app/index.js

    To ignore these parts of the path that are not predictable, you can configure AppSignal to ignore everything before the app folder as follows:

    JavaScript
    const appsignal = new AppSignal({ matchBacktracePaths: [ new RegExp("CoolBeans\\.app/Contents/Resources/(.*)$") ] })

    If set, the matchBacktracePaths configuration option must contain a regular expression, or an array of one or more regular expressions, which attempt to match the whole backtrace line path. These regular expressions must have one or more match groups, such as (.*) in the example above, which attempt to match against the relevant segments of the backtrace line path.

    AppSignal will attempt to match the whole backtrace line path against these regular expressions in order. If any of the regular expression matches and produces a match group, AppSignal will replace the path in the backtrace line with the matched segment.

    Make sure your regular expressions provide unique and stable points of reference in the path, such as CoolBeans.app/Contents/Resources in the example above.

Fixed

  • Fix an issue when regexes with the g global flag are used on ignoreErrors. Before this change, after successfully matching on an error to ignore, if the following error would also match the same regular expression, the regular expression would then fail to match it.

View the @appsignal/javascript v1.5.0 changelog for more information.

Jul 03, 2024

Add span override prop to React error boundaries

JavaScript@appsignal/react@1.0.26

Added

  • Add a span override prop to the ErrorBoundary and LegacyBoundary components.

    Pass an override function to the error boundary component in order to set properties, such as tags, params or breadcrumbs, in the error span that will be sent to AppSignal.

    The override function is only called when an error is about to be sent. This allows you to only perform expensive computation to add information to the error when an error will actually be reported.

    When defined within a component, the function should be memoized with useCallback to prevent unnecessary re-renders:

    jsx
    export default const SomeComponent = ({ someProp }) => { const override = useCallback((span) => { span.setTags({ someProp }) }, [someProp]); return ( <ErrorBoundary override={override}> { /* Your component here */ } </ErrorBoundary> ) }

View the AppSignal JavaScript react v1.0.26 changelog for more information.

Nov 06, 2023

Fix transport selection in Electron

JavaScript@appsignal/javascript 1.3.27

Attempt to import the http and https module dynamically. This fixes an issue with Electron, which does not expose the https module.

Emit a warning if NodeTransport is used but the https module fails to be imported.

This allows Electron users to use the AppSignal integration alongside with the electron-fetch library.

See the @appsignal/javascript 1.3.27 changelog for more information.

Aug 24, 2022

Changelog update 24 August, 2022

JavaScript@appsignal/react@1.0.21

(changelog)

  • Bump peer dependency to allow React 18.2.

@appsignal/plugin-window-events@1.0.18: (changelog)

  • Fix the behaviour of the unhandled promise rejection handler when the rejection event contains an Error.

@appsignal/core@1.1.18: (changelog)

  • Fix isError so that it does not throw an error when the given value is not an object.
Jul 27, 2022

Changelog update 27 July, 2022

JavaScript@appsignal/cli@1.1.17

Fix the --[no-]send-report CLI flags for the diagnose command.

May 26, 2022

Changelog update 26 May, 2022

JavaScript@appsignal/react@1.0.20
  • Add React 18 compatibility. See our changelog for more information.
Mar 17, 2022

Changelog update 17 March, 2022

JavaScript@appsignal/javascript@1.3.23

Ignore non error objects when setting errors in spans. See our changelog for more information.

@appsignal/preact@1.0.18:

Remove error type check on ErrorBoundary. See our changelog for more information.

@appsignal/react@1.0.19:

Remove error type check on ErrorBoundary. See our changelog for more information.

@appsignal/cli@1.1.16:

Add demo command. See our changelog for more information.

Start your free trial

Don’t let the bad bugs bite. Try AppSignal for free.

AppSignal offers a 30-day free trial, no credit card is required. All features are available in all plans. Start monitoring your application in just a few clicks!