diff --git a/static/app/components/events/interfaces/crashContent/exception/sourceMapDebug.spec.tsx b/static/app/components/events/interfaces/crashContent/exception/sourceMapDebug.spec.tsx index 62885e89dc4b..a0fefbb656ad 100644 --- a/static/app/components/events/interfaces/crashContent/exception/sourceMapDebug.spec.tsx +++ b/static/app/components/events/interfaces/crashContent/exception/sourceMapDebug.spec.tsx @@ -99,7 +99,7 @@ describe('SourceMapDebug', () => { }); expect( await screen.findByText( - "We've encountered 1 problem de-minifying your applications source code!" + "We've encountered 1 problem un-minifying your applications source code!" ) ).toBeInTheDocument(); @@ -132,7 +132,7 @@ describe('SourceMapDebug', () => { }); expect( await screen.findByText( - "We've encountered 1 problem de-minifying your applications source code!" + "We've encountered 1 problem un-minifying your applications source code!" ) ).toBeInTheDocument(); @@ -161,12 +161,12 @@ describe('SourceMapDebug', () => { }); expect( await screen.findByText( - "We've encountered 1 problem de-minifying your applications source code!" + "We've encountered 1 problem un-minifying your applications source code!" ) ).toBeInTheDocument(); const expandedMessage = - 'The given abs_path of the stack frame is absValue which is not a valid URL. Please refer to the instructions in our docs guide for help with troubleshooting the issue.'; + 'The abs_path of the stack frame is absValue which is not a valid URL. Read our docs for troubleshooting help.'; expect( screen.queryByText(textWithMarkupMatcher(expandedMessage)) ).not.toBeInTheDocument(); diff --git a/static/app/components/events/interfaces/crashContent/exception/sourceMapDebug.tsx b/static/app/components/events/interfaces/crashContent/exception/sourceMapDebug.tsx index ec49f5b34c60..a3308283a17c 100644 --- a/static/app/components/events/interfaces/crashContent/exception/sourceMapDebug.tsx +++ b/static/app/components/events/interfaces/crashContent/exception/sourceMapDebug.tsx @@ -63,7 +63,7 @@ function getErrorMessage( { title: t('Event missing Release tag'), desc: t( - 'Integrate Sentry into your release pipeline. You can do this with a tool like Webpack or using the CLI.' + 'Integrate Sentry into your release pipeline using a tool like Webpack or the CLI.' ), docsLink: defaultDocsLink, }, @@ -90,7 +90,7 @@ function getErrorMessage( { title: t('Sentry not part of release pipeline'), desc: tct( - 'Integrate Sentry into your release pipeline. You can do this with a tool like Webpack or using the CLI. Please note the release must be the same as being set in your [init]. The value for this event is [version].', + "Integrate Sentry into your release pipeline using a tool like Webpack or the CLI. Your release must match what's set in your [init]. The value for this event is [version].", { init: sentryInit, version: {error.data.version}, @@ -104,7 +104,7 @@ function getErrorMessage( { title: t('Source Maps not uploaded'), desc: t( - 'It looks like you are creating but not uploading your source maps. Please refer to the instructions in our docs guide for help with troubleshooting the issue.' + "It looks like you're creating, but not uploading your source maps. Read our docs for troubleshooting help." ), docsLink: defaultDocsLink, }, @@ -114,7 +114,7 @@ function getErrorMessage( { title: t('Invalid Absolute Path URL'), desc: tct( - 'The given [literalAbsPath] of the stack frame is [absPath] which is not a valid URL. Please refer to the instructions in our docs guide for help with troubleshooting the issue.', + 'The [literalAbsPath] of the stack frame is [absPath] which is not a valid URL. Read our docs for troubleshooting help.', { absPath: {error.data.absPath}, literalAbsPath: abs_path, @@ -130,7 +130,7 @@ function getErrorMessage( { title: t('Absolute Path Mismatch'), desc: tct( - "The given [literalAbsPath] of the stack frame is [absPath] which doesn't match any release artifact. Please refer to the instructions in our docs guide for help with troubleshooting the issue.", + "The given [literalAbsPath] of the stack frame is [absPath] which doesn't match any release artifact. Read our docs for troubleshooting help.", { absPath: {error.data.absPath}, literalAbsPath: abs_path, @@ -146,7 +146,7 @@ function getErrorMessage( { title: t('Dist Mismatch'), desc: tct( - "The distribution identifier you are providing doesn't match. The [literalDist] value of [dist] configured in your [init] must be the same as the one used during source map upload. Please refer to the instructions in our docs guide for help with troubleshooting the issue.", + "The distribution identifier you're providing doesn't match. The [literalDist] value of [dist] configured in your [init] must be the same as the one used during source map upload. Read our docs for troubleshooting help.", { init: sentryInit, dist: dist, @@ -158,6 +158,16 @@ function getErrorMessage( ), }, ]; + case SourceMapProcessingIssueType.SOURCEMAP_NOT_FOUND: + return [ + { + title: t("Source Map File doesn't exist"), + desc: t( + "Sentry couldn't fetch the source map file for this event. Read our docs for troubleshooting help." + ), + docsLink: getTroubleshootingLink(), + }, + ]; case SourceMapProcessingIssueType.UNKNOWN_ERROR: default: return []; @@ -308,8 +318,8 @@ export function SourceMapDebug({debugFrames, event}: SourcemapDebugProps) { } > {tn( - "We've encountered %s problem de-minifying your applications source code!", - "We've encountered %s problems de-minifying your applications source code!", + "We've encountered %s problem un-minifying your applications source code!", + "We've encountered %s problems un-minifying your applications source code!", errorMessages.length )} diff --git a/static/app/components/events/interfaces/crashContent/exception/useSourceMapDebug.tsx b/static/app/components/events/interfaces/crashContent/exception/useSourceMapDebug.tsx index 2bce7e45b396..b22c584a3e19 100644 --- a/static/app/components/events/interfaces/crashContent/exception/useSourceMapDebug.tsx +++ b/static/app/components/events/interfaces/crashContent/exception/useSourceMapDebug.tsx @@ -36,6 +36,9 @@ interface PartialMatchDebugError extends BaseSourceMapDebugError { interface DistMismatchDebugError extends BaseSourceMapDebugError { type: SourceMapProcessingIssueType.DIST_MISMATCH; } +interface SourcemapNotFoundDebugError extends BaseSourceMapDebugError { + type: SourceMapProcessingIssueType.SOURCEMAP_NOT_FOUND; +} interface NoURLMatchDebugError extends BaseSourceMapDebugError { data: {absPath: string}; type: SourceMapProcessingIssueType.NO_URL_MATCH; @@ -49,6 +52,7 @@ export type SourceMapDebugError = | UrlNotValidDebugError | PartialMatchDebugError | DistMismatchDebugError + | SourcemapNotFoundDebugError | NoURLMatchDebugError; export interface SourceMapDebugResponse { @@ -64,6 +68,7 @@ export enum SourceMapProcessingIssueType { NO_URL_MATCH = 'no_url_match', PARTIAL_MATCH = 'partial_match', DIST_MISMATCH = 'dist_mismatch', + SOURCEMAP_NOT_FOUND = 'sourcemap_not_found', } const sourceMapDebugQuery = ({