diff --git a/tracker/tracker/src/main/index.ts b/tracker/tracker/src/main/index.ts index 840334f54..723c92671 100644 --- a/tracker/tracker/src/main/index.ts +++ b/tracker/tracker/src/main/index.ts @@ -285,7 +285,8 @@ export default class API { return } if (e instanceof Error) { - this.app.send(getExceptionMessage(e, [], tags, metadata)) + const msg = getExceptionMessage(e, [], tags, metadata) + this.app.send(msg) } else if ( e instanceof ErrorEvent || ('PromiseRejectionEvent' in window && e instanceof PromiseRejectionEvent) diff --git a/tracker/tracker/src/main/modules/exception.ts b/tracker/tracker/src/main/modules/exception.ts index a1b9e08e8..d51ead446 100644 --- a/tracker/tracker/src/main/modules/exception.ts +++ b/tracker/tracker/src/main/modules/exception.ts @@ -37,7 +37,8 @@ export function getExceptionMessage( try { stack = ErrorStackParser.parse(error) } catch (e) {} - const method = metadata ? ExceptionWithMeta : JSException + const metaPresent = metadata || tags + const method = metaPresent ? ExceptionWithMeta : JSException return method( error.name, error.message, @@ -62,7 +63,15 @@ export function getExceptionMessageFromEvent( name = 'Error' message = e.message } - return JSException(name, message, JSON.stringify(getDefaultStack(e))) + const metaPresent = metadata || tags + const method = metaPresent ? ExceptionWithMeta : JSException + return method( + name, + message, + JSON.stringify(getDefaultStack(e)), + JSON.stringify(tags), + JSON.stringify(metadata), + ) } } else if ('PromiseRejectionEvent' in context && e instanceof context.PromiseRejectionEvent) { if (e.reason instanceof Error) { @@ -74,7 +83,8 @@ export function getExceptionMessageFromEvent( } catch (_) { message = String(e.reason) } - const method = metadata ? ExceptionWithMeta : JSException + const metaPresent = metadata || tags + const method = metaPresent ? ExceptionWithMeta : JSException return method( 'Unhandled Promise Rejection', message,