sentry-javascript: Crash on server side running on Vercel after upgrading to Next.js 12
- Review the documentation: https://docs.sentry.io/
- Search for existing issues: https://github.com/getsentry/sentry-javascript/issues
- Use the latest release: https://github.com/getsentry/sentry-javascript/releases
- Provide a link to the affected event from your Sentry account
Package + Version
-
@sentry/browser -
@sentry/node -
raven-js -
raven-node(raven for node) - other:
@sentry/nextjs
Version:
6.13.3
Description
After upgrading a project from Next 11.1.2 to 12.0.1, the Next.js-powered API endpoints start to crash, as in https://drafted-webapp-hmopbeh9f-davidguijarro.vercel.app/api/status.
Here’s a sample log of the error:
[GET] /api/status
09:32:11:52
2021-10-29T07:32:12.548Z 1c5c0769-4fd8-4480-8b9a-08598598cd1f ERROR Error: Cannot find module './browser'
Require stack:
- /var/task/node_modules/@sentry/tracing/dist/index.js
- /var/task/node_modules/@sentry/node/dist/handlers.js
- /var/task/node_modules/@sentry/node/dist/index.js
- /var/task/node_modules/@sentry/nextjs/dist/index.server.js
- /var/task/.next/server/pages/api/status.js
- /var/task/node_modules/next/dist/server/next-server.js
- /var/task/___next_launcher.js
- /var/runtime/UserFunction.js
- /var/runtime/index.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:889:15)
at Function.Module._load (internal/modules/cjs/loader.js:745:27)
at Module.require (internal/modules/cjs/loader.js:961:19)
at require (internal/modules/cjs/helpers.js:92:18)
at Object.<anonymous> (/var/task/node_modules/@sentry/tracing/dist/index.js:3:17)
at Module._compile (internal/modules/cjs/loader.js:1072:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
at Module.load (internal/modules/cjs/loader.js:937:32)
at Function.Module._load (internal/modules/cjs/loader.js:778:12)
at Module.require (internal/modules/cjs/loader.js:961:19) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/var/task/node_modules/@sentry/tracing/dist/index.js',
'/var/task/node_modules/@sentry/node/dist/handlers.js',
'/var/task/node_modules/@sentry/node/dist/index.js',
'/var/task/node_modules/@sentry/nextjs/dist/index.server.js',
'/var/task/.next/server/pages/api/status.js',
'/var/task/node_modules/next/dist/server/next-server.js',
'/var/task/___next_launcher.js',
'/var/runtime/UserFunction.js',
'/var/runtime/index.js'
]
}
RequestId: 1c5c0769-4fd8-4480-8b9a-08598598cd1f Error: Runtime exited with error: exit status 1
Runtime.ExitError
Weird enough, this only happens when deployed to Vercel, not when running on local.
I also confirmed that completely removing Sentry from the project solves the issue.
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Reactions: 46
- Comments: 18 (2 by maintainers)
Current workaround is to add
outputFileTracing: falseto the root of yournext.config.jsthat will probably lead to larger artifact, but solves the issue.
output-file-tracing
outputFileTracing: falsedoes not work for me. And my crash condition is somewhat different, it crashes on SSR pages only.What’s odd to me is
next build ; next startworks on the same SSR pages that crash when only deployed on Vercel previews. Local dev build also works fine.Would love to have
@sentry/nextjscompatible with Next 12, as this is a pretty major blocker for Next + Sentry.I just upgraded to
@sentry/nextjs@6.15.0andnext@12.0.4. This issue still occurs:I believe #4027 is a separate issue to this. A comment from the Next.js maintainer seems to indicate that this issue is caused by Sentry importing a reference to
next, which is disallowed on Vercel since it would increase the bundle size.I’m not sure why it can’t be tree-shaked(Seems like there isn’t any additional bundling done, and the full module is imported). Since theinstrumentServerfunction directly modifies internals in the Next.js server, it might be good to communicate directly with the Next.js team to figure out a solution, since this seems to be a major blocker to Sentry + Next.js adoption on Vercel.The workaround of
outputFileTracingis also not a feasible long-term solution, since it severely increases the bundle size of all Next.js pages (~1.6x in my case).Upgrading to 6.5.0 and setting
outputFileTracing: falsehas worked for me@IGUNUBLUE Yep, at least that is my current workaround.
Edit: These are related to Sentry and Next.js but not to the issue discussed here. Sorry, I got that mixed up.
Yes there are two open PRs at the moment:https://github.com/getsentry/sentry-javascript/pull/4044 which was a first attempt but probably won’t get mergedhttps://github.com/getsentry/sentry-javascript/pull/4027 which will get merged some day hopefully. 😬Just adding a quick message as I stumbled on this error with using nx, sentry and next. I read too quickly the documentation and missed this part :
If
withSentryConfigis not the last function to applied, nextJS bundling will not work (Cannot find module '@sentry/nextjs'):+1
getting this too. will this issue track a proper fix?