Skip to content

Commit 6ae68ca

Browse files
author
Luca Forstner
authored
Merge pull request #7427 from getsentry/lforst-dont-crash-on-missing-auth-token-and-print-log-msg
2 parents fe1231a + 045d11b commit 6ae68ca

File tree

1 file changed

+39
-1
lines changed

1 file changed

+39
-1
lines changed

packages/nextjs/src/config/webpack.ts

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -626,7 +626,45 @@ export function getWebpackPluginOptions(
626626

627627
checkWebpackPluginOverrides(defaultPluginOptions, userPluginOptions);
628628

629-
return { ...defaultPluginOptions, ...userPluginOptions };
629+
return {
630+
...defaultPluginOptions,
631+
...userPluginOptions,
632+
errorHandler(err, invokeErr, compilation) {
633+
// Hardcoded way to check for missing auth token until we have a better way of doing this.
634+
if (err && err.message.includes('Authentication credentials were not provided.')) {
635+
const warningPrefix = `${chalk.yellow('warn')} -`;
636+
637+
let msg;
638+
639+
if (process.env.VERCEL) {
640+
msg = `To fix this, use Sentry's Vercel integration to automatically set the ${chalk.bold.cyan(
641+
'SENTRY_AUTH_TOKEN',
642+
)} environment variable: https://vercel.com/integrations/sentry`;
643+
} else {
644+
msg =
645+
'You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/\n' +
646+
`After generating a Sentry auth token, set it via the ${chalk.bold.cyan(
647+
'SENTRY_AUTH_TOKEN',
648+
)} environment variable during the build.`;
649+
}
650+
651+
// eslint-disable-next-line no-console
652+
console.error(
653+
`${warningPrefix} ${chalk.bold(
654+
'No Sentry auth token configured.',
655+
)} Source maps will not be uploaded.\n${msg}\n`,
656+
);
657+
658+
return;
659+
}
660+
661+
if (userPluginOptions.errorHandler) {
662+
return userPluginOptions.errorHandler(err, invokeErr, compilation);
663+
}
664+
665+
return invokeErr();
666+
},
667+
};
630668
}
631669

632670
/** Check various conditions to decide if we should run the plugin */

0 commit comments

Comments
 (0)