Skip to content

Commit e7a263c

Browse files
committed
ui: filter expected client errors from Sentry
1 parent fae88b3 commit e7a263c

2 files changed

Lines changed: 7 additions & 4 deletions

File tree

packages/ui-default/sentry.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ init({
1717
tracePropagationTargets: ['localhost', /^\//, window.location.host],
1818
replaysSessionSampleRate: 0.01,
1919
replaysOnErrorSampleRate: 0.1,
20+
beforeSend: (event, hint) => ((hint.originalException as { isUserFacingError?: boolean } | undefined)?.isUserFacingError ? null : event),
2021
});
2122
setTag('host', window.location.host);
2223
setTag('page_name', document.documentElement.getAttribute('data-page'));

packages/ui-default/utils/base.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -114,15 +114,17 @@ export const request = {
114114
reject(err);
115115
} else if (typeof jqXHR.responseJSON === 'object' && jqXHR.responseJSON.error) {
116116
const { error } = jqXHR.responseJSON;
117+
let err: any;
117118
if (error.params) {
118119
const message = i18n(error.message, ...error.params);
119-
const err = new Error(message === error.message && error.params.length
120+
err = new Error(message === error.message && error.params.length
120121
? `${error.message}: ${error.params.join(' ')}`
121-
: message) as any;
122+
: message);
122123
err.rawMessage = error.message;
123124
err.params = error.params;
124-
reject(err);
125-
} else reject(new Error(jqXHR.responseJSON.error.message));
125+
} else err = new Error(error.message);
126+
if (jqXHR.status >= 400 && jqXHR.status < 500) err.isUserFacingError = true;
127+
reject(err);
126128
} else if (errorThrown instanceof Error) {
127129
reject(errorThrown);
128130
} else {

0 commit comments

Comments
 (0)