sentry-javascript: Cannot destructure property 'RawSource' of 'require(...)' as it is undefined error only when withSentryConfig is used and a site is viewed in Next dev mode
Is there an existing issue for this?
- I have checked for existing issues https://github.com/getsentry/sentry-javascript/issues
- I have reviewed the documentation https://docs.sentry.io/
- I am using the latest SDK release https://github.com/getsentry/sentry-javascript/releases
How do you use Sentry?
Sentry Saas (sentry.io)
Which SDK are you using?
SDK Version
7.58.1
Framework Version
13.4.10
Link to Sentry event
No response
SDK Setup
next.config.js:
const cspHeaders = require('./src/utils/csp.js');
const { env: clientEnv } = require('./src/utils/public/configuration.js');
const { withSentryConfig } = require('@sentry/nextjs');
const nextBuildId = require('next-build-id');
const bundleAnalyzer = require('@next/bundle-analyzer')({
// eslint-disable-next-line n/no-process-env
enabled: !!process.env.BUNDLE_ANALYSE
});
//This import allows for build time checking of the public environment variables
clientEnv;
const securityHeaders = [
{
key: 'X-DNS-Prefetch-Control',
value: 'on'
},
{
key: 'Strict-Transport-Security',
value: 'max-age=63072000; includeSubDomains; preload'
},
{
key: 'X-XSS-Protection',
value: '1; mode=block'
},
{
key: 'X-Frame-Options',
value: 'SAMEORIGIN'
},
{
key: 'X-Content-Type-Options',
value: 'nosniff'
},
{
key: 'Referrer-Policy',
value: 'no-referrer-when-downgrade'
}
];
const allPathsHeaders = [
{
key: 'X-Robots-Tag',
value: 'noindex'
},
{
key: 'Content-Security-Policy',
value: cspHeaders
}
];
/** @type {import('next').NextConfig} */
const nextConfig = {
// We want prod sourcemaps for Rollbar/Sentry etc.
productionBrowserSourceMaps: true,
// Imperva's CDN will give us Brotli or Gzip compression, so this can take the load off the Next server:
// @TODO: set this back to false when https://github.com/vercel/next.js/issues/48713 resolved
compress: true,
experimental: {
// Disabled for now as experimental and https://github.com/vercel/next.js/issues/51286
serverActions: false
},
images: {
// Set a minimum cache TTL for images as the Azure blob storage product
// image responses do not include a cache-control header
minimumCacheTTL: 86400,
remotePatterns: [
{
protocol: 'https',
hostname: 'images.ctfassets.net'
},
{
protocol: 'https',
hostname: 'rt-1-pr-euw-retailapis-end-01.azureedge.net'
},
{
protocol: 'https',
hostname: 'rt-1-dv-euw-retailapis-end-01.azureedge.net'
},
{
protocol: 'https',
hostname: 'sspayinaisledevsst02.blob.core.windows.net'
}
]
},
headers: async () => {
const headers = [
{
source: '/:path*',
headers: [...allPathsHeaders, ...securityHeaders]
}
];
return headers;
},
modularizeImports: {
lodash: {
transform: 'lodash/{{member}}'
}
},
// https://github.com/nexdrew/next-build-id
// Base Next's build ID on Git info rather than a random string
generateBuildId: () => nextBuildId({ dir: __dirname, describe: true }),
webpack: (config, { webpack, buildId }) => {
config.plugins.push(
new webpack.DefinePlugin({
// https://docs.sentry.io/platforms/javascript/guides/nextjs/configuration/tree-shaking/
__SENTRY_DEBUG__: false
// __SENTRY_TRACING__: false
}),
new webpack.DefinePlugin({
'process.env.NEXT_PUBLIC_BUILD_ID': JSON.stringify(buildId),
// eslint-disable-next-line n/no-process-env
'process.env.NEXT_PUBLIC_NODE_ENV': JSON.stringify(process.env.NODE_ENV)
})
);
return config;
},
// Remove the x-powered-by header as some pentesters/scanners consider it an
// information disclosure.
poweredByHeader: false,
eslint: {
ignoreDuringBuilds: true
},
transpilePackages: [
'@sindresorhus/slugify',
'escape-string-regexp',
'@sindresorhus/transliterate'
],
sentry: {
hideSourcemaps: false
}
};
module.exports = withSentryConfig(bundleAnalyzer(nextConfig), {
silent: true
});
// module.exports = bundleAnalyzer(nextConfig);
Steps to Reproduce
I’m sorry, I don’t have a minimum viable reproduction for this, and it’s a private repo. I can try and put something together next week perhaps, but I wanted to raise this issue in case one of the maintainers recognised the issue.
My environment:
❯ npx next info
Operating System:
Platform: darwin
Arch: x64
Version: Darwin Kernel Version 22.5.0: Thu Jun 8 22:22:20 PDT 2023; root:xnu-8796.121.3~7/RELEASE_ARM64_T6000
Binaries:
Node: 18.14.0
npm: 9.6.4
Yarn: N/A
pnpm: 7.29.0
Relevant Packages:
next: 13.4.10
eslint-config-next: 13.4.10
react: 18.2.0
react-dom: 18.2.0
typescript: 5.1.6
Next.js Config:
output: N/A
Expected Result
Site can be viewed in dev mode
Actual Result
Site errors when a page is viewed in dev mode when withSentryConfig is used, but works when withSentryConfig is not used.
- error TypeError: Cannot destructure property 'RawSource' of 'require(...)' as it is undefined.
at @sentry/nextjs (/Users/wolsph/Projects/shop-next/.next/server/app/(main)/page.js:22:18)
at __webpack_require__ (/Users/wolsph/Projects/shop-next/.next/server/webpack-runtime.js:33:43)
at eval (./sentry.server.config.js:2:72)
at (sc_server)/./sentry.server.config.js (/Users/wolsph/Projects/shop-next/.next/server/app/(main)/page.js:4643:1)
at __webpack_require__ (/Users/wolsph/Projects/shop-next/.next/server/webpack-runtime.js:33:43)
at eval (./src/app/layout.tsx:6:82)
at (sc_server)/./src/app/layout.tsx (/Users/wolsph/Projects/shop-next/.next/server/app/(main)/page.js:1548:1)
at Function.__webpack_require__ (/Users/wolsph/Projects/shop-next/.next/server/webpack-runtime.js:33:43)
- error TypeError: Cannot destructure property 'RawSource' of 'require(...)' as it is undefined.
at @sentry/nextjs (/Users/wolsph/Projects/shop-next/.next/server/app/(main)/page.js:22:18)
at __webpack_require__ (/Users/wolsph/Projects/shop-next/.next/server/webpack-runtime.js:33:43)
at eval (./sentry.server.config.js:2:72)
at (sc_server)/./sentry.server.config.js (/Users/wolsph/Projects/shop-next/.next/server/app/(main)/page.js:4643:1)
at __webpack_require__ (/Users/wolsph/Projects/shop-next/.next/server/webpack-runtime.js:33:43)
at eval (./src/app/layout.tsx:6:82)
at (sc_server)/./src/app/layout.tsx (/Users/wolsph/Projects/shop-next/.next/server/app/(main)/page.js:1548:1)
at Function.__webpack_require__ (/Users/wolsph/Projects/shop-next/.next/server/webpack-runtime.js:33:43)
digest: "1055278946"
- error Error [TypeError]: Cannot destructure property 'RawSource' of 'require(...)' as it is undefined.
at Object.<anonymous> (/Users/wolsph/Projects/shop-next/node_modules/@sentry/webpack-plugin/src/index.js:5:9)
at Module._compile (node:internal/modules/cjs/loader:1226:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1280:10)
at Module.load (node:internal/modules/cjs/loader:1089:32)
at Module._load (node:internal/modules/cjs/loader:930:12)
at Module.require (node:internal/modules/cjs/loader:1113:19)
at require (node:internal/modules/cjs/helpers:103:18)
at Object.<anonymous> (/Users/wolsph/Projects/shop-next/node_modules/@sentry/webpack-plugin/src/cjs.js:1:18)
at Module._compile (node:internal/modules/cjs/loader:1226:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1280:10)
at Module.load (node:internal/modules/cjs/loader:1089:32)
at Module._load (node:internal/modules/cjs/loader:930:12)
at Module.require (node:internal/modules/cjs/loader:1113:19)
at require (node:internal/modules/cjs/helpers:103:18)
at Object.<anonymous> (/Users/wolsph/Projects/shop-next/node_modules/@sentry/nextjs/cjs/config/webpack.js:10:29)
at Module._compile (node:internal/modules/cjs/loader:1226:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1280:10)
at Module.load (node:internal/modules/cjs/loader:1089:32)
at Module._load (node:internal/modules/cjs/loader:930:12)
at Module.require (node:internal/modules/cjs/loader:1113:19)
at require (node:internal/modules/cjs/helpers:103:18)
at Object.<anonymous> (/Users/wolsph/Projects/shop-next/node_modules/@sentry/nextjs/cjs/config/withSentryConfig.js:7:17)
at Module._compile (node:internal/modules/cjs/loader:1226:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1280:10)
at Module.load (node:internal/modules/cjs/loader:1089:32)
at Module._load (node:internal/modules/cjs/loader:930:12)
at Module.require (node:internal/modules/cjs/loader:1113:19)
at require (node:internal/modules/cjs/helpers:103:18)
at Object.<anonymous> (/Users/wolsph/Projects/shop-next/node_modules/@sentry/nextjs/cjs/index.server.js:4:26)
at Module._compile (node:internal/modules/cjs/loader:1226:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1280:10)
at Module.load (node:internal/modules/cjs/loader:1089:32)
at Module._load (node:internal/modules/cjs/loader:930:12)
at Module.require (node:internal/modules/cjs/loader:1113:19)
at require (node:internal/modules/cjs/helpers:103:18)
at @sentry/nextjs (/Users/wolsph/Projects/shop-next/.next/server/app/(main)/page.js:22:18)
at __webpack_require__ (/Users/wolsph/Projects/shop-next/.next/server/webpack-runtime.js:33:43)
at eval (webpack-internal:///(sc_server)/./sentry.server.config.js:2:72)
at (sc_server)/./sentry.server.config.js (/Users/wolsph/Projects/shop-next/.next/server/app/(main)/page.js:4643:1)
at __webpack_require__ (/Users/wolsph/Projects/shop-next/.next/server/webpack-runtime.js:33:43)
at eval (webpack-internal:///(sc_server)/./src/app/layout.tsx:6:82)
at (sc_server)/./src/app/layout.tsx (/Users/wolsph/Projects/shop-next/.next/server/app/(main)/page.js:1548:1)
at Function.__webpack_require__ (/Users/wolsph/Projects/shop-next/.next/server/webpack-runtime.js:33:43)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async /Users/wolsph/Projects/shop-next/node_modules/next/dist/server/app-render/app-render.js:1016:91 {
digest: undefined
}
About this issue
- Original URL
- State: closed
- Created a year ago
- Reactions: 32
- Comments: 47 (15 by maintainers)
Commits related to this issue
- fix(nextjs): Avoid importing SentryWebpackPlugin in dev mode (#8543) As reported in #8541, our NextJS SDK currently breaks dev mode for the newest NextJS 13.4.10 version I have absolutely no idea... — committed to getsentry/sentry-javascript by Lms24 a year ago
- fix(nextjs): Avoid importing SentryWebpackPlugin in dev mode (#8543) As reported in #8541, our NextJS SDK currently breaks dev mode for the newest NextJS 13.4.10 version I have absolutely no idea... — committed to getsentry/sentry-javascript by Lms24 a year ago
- fix(nextjs): Avoid importing `SentryWebpackPlugin` in dev mode (#8557) As reported in #8541, our NextJS SDK currently breaks dev mode for the newest NextJS 13.4.10 version I still have absolutely... — committed to getsentry/sentry-javascript by Lms24 a year ago
- fix(nextjs): Ensure Webpack plugin is available after dynamic require (#8584) For some reason, dynamic requires of our webpack plugin don't work for some users. We still don't have a better fix for... — committed to getsentry/sentry-javascript by Lms24 a year ago
Hey everyone, the fix in the beta has been released with https://github.com/getsentry/sentry-javascript/releases/tag/7.59.0
I can also confirm downgrading Next
13.4.10to13.4.9solved this issue for me… I’m on Sentry7.58.1Thanks for all your work on this, Sentry folks!
I can imagine how frustrating it must be when your product has to integrate with other companies’ products, and they release something before you have a chance to react to your canary tests failing! We appreciate your persistence in supporting the rapidly moving target that is Next.js at the moment! 🙏
This works perfectly well, both in dev mode and production mode
I also notice my project is faster.
Hi all, version
7.59.2was finally just released. It includes the hotfix from the beta. We’re very sorry for the inconvenience around the failed 7.59.0 and 7.59.1 releases and we’re taking steps to ensure that this publishing issue doesn’t occur again.To everyone following this thread: We just released a beta version with the aforementioned hotfix.
If you can, please help us out and update to
@sentry/nextjs@7.59.0-beta.1andnext@13.4.10. Please let us know if this fixes things for you again. Thanks!Good call @jinsley8! Seems like cached init is causing issues with the Sentry SDK’s webpack plugin trying to require webpack sources.
We’ll be merging in https://github.com/getsentry/sentry-javascript/pull/8557 and cutting a release today. Appreciate everyone helping us test the beta and leaving their comments. Thanks for your patience everyone!
@sentry/nextjs@7.59.0-beta.1 works as expected for us.
Well, seems at least we’re not the only ones that who were once again broken by next 😅 thanks for investigating @kirkegaard!
Yes, that’s correct 🤞
7.59.1is out and seems to fix the issue. At least in my end 😃I’ve been experiencing this issue since bumping my libs from Next
13.4.9to13.4.10& sentry/nextjs7.47.0to7.58.1.I just tried downgrading Next back to13.4.9and the issue is still occurring.edit: oops, ignore my previous message. I’d forgotten to remove the caret in
"next": "^13.4.9", so my project was still installing13.4.10🤦.The issue is gone after pinning versions and using Sentry
7.58.1with Next13.4.9, so something in Next13.4.10is breaking Sentryi have the same problem, it happens in 13.4.10 v
Hey @ThePaulMcBride yes, technically it is. The hotfix was merged but we’re experiencing some general publishing problems at the moment. We’re currently cleaning this up and expecting to release 7.59.2 within the next hour to finally resolve this. Sorry for the inconvenience.
You can use
7.59.0-beta.1to work around this issue though.Yes @jandolezal71 , the original issue was solved in
@sentry/nextjs@7.59.3Anyway, IMHO this issue is not related to the original bug report
Cannot destructure property 'RawSource' of 'require(...)' as it is undefined error.Shouldn’t be error from #wmadden discussed in another thread and close this issue?
Any progress here?
Looks like it is fixed in
@sentry/nextjs 7.59.3https://github.com/getsentry/sentry-javascript/pull/8584I can confirm that @sentry/nextjs@7.59.0-beta.1 works for me as well with next@13.4.10
@Lms24 this seems to be working. Also, development environment also improved dramatically as well. It used to take 10-20 seconds now it’s 1-2 seconds to load.
I had the same issue and downgraded Next.js to
13.4.9for nowDoes not happen after downgrading, this is only happening on 13.4.10 (somewhere after 13.4.10-canary.2 that I tested with before)