next-runtime icon indicating copy to clipboard operation
next-runtime copied to clipboard

[Bug]: `Error: Cannot find module 'next/dist/server/future/route-modules/pages/vendored/contexts/amp-context'` in NextJS preview mode

Open ben221199 opened this issue 10 months ago • 35 comments

Summary

Website is working normally, but when setting NextJS in preview mode to see live Sanity data, Netlify gives a 500 error. Locally, the preview mode works. Also, in a Docker image it works as expected. Netlify is the only place where preview mode fails.

A link to a reproduction repository

Private repository

Expected Result

No error, just NextJS on Netlify in preview mode getting live data from Sanity.

Actual Result

A 500 error in the browser and the error log below.

Steps to reproduce

Don't know.

Next Runtime version

4.40.3-rc.0

Is your issue related to the app directory?

  • [ ] Yes, I am using the app directory

More information about your build

  • [ ] I am building using the CLI
  • [X] I am building using file-based configuration (netlify.toml)

What OS are you using?

None

Your netlify.toml file

`netlify.toml`
[[plugins]]
    package = "@netlify/plugin-nextjs"

[[plugins]]
    package = "@netlify/plugin-sitemap"

    [plugins.inputs]
    exclude = [
        '.next/404.html',
        '.next/404/index.html',
        '.next/500.html',
        '.next/500/index.html',
    ]

Your public/_redirects file

None

Your next.config.js file

`next.config.js`
/** @type {import('next').NextConfig} */
module.exports = {
    i18n: {
        defaultLocale: 'nl',
        locales: ['nl'],
    },
    images: {
        domains: ['cdn.sanity.io'],
    },
    output: 'standalone',
    swcMinify: false,

    async redirects() {
        const sanityRedirects = await fetchSanityRedirects();
        return sanityRedirects;
    },
};

Builds logs (or link to your logs)

None

Function logs

Function logs
Error: Cannot find module 'next/dist/server/future/route-modules/pages/vendored/contexts/amp-context'
Require stack:
- /var/task/node_modules/next/dist/shared/lib/head.js
- /var/task/node_modules/next/head.js
- /var/task/.next/server/pages/index.js
- /var/task/node_modules/next/dist/server/require.js
- /var/task/node_modules/next/dist/server/next-server.js
- /var/task/.netlify/functions-internal/___netlify-handler/___netlify-handler.js
- /var/task/___netlify-handler.js
- /var/runtime/index.mjs
    at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15)
    at /var/task/node_modules/next/dist/server/require-hook.js:54:36
    at Module._load (node:internal/modules/cjs/loader:922:27)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at mod.require (/var/task/node_modules/next/dist/server/require-hook.js:62:32)
    at require (node:internal/modules/cjs/helpers:121:18)
    at Object.<anonymous> (/var/task/node_modules/next/dist/shared/lib/head.js:29:34)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/var/task/node_modules/next/dist/shared/lib/head.js',
    '/var/task/node_modules/next/head.js',
    '/var/task/.next/server/pages/index.js',
    '/var/task/node_modules/next/dist/server/require.js',
    '/var/task/node_modules/next/dist/server/next-server.js',
    '/var/task/.netlify/functions-internal/___netlify-handler/___netlify-handler.js',
    '/var/task/___netlify-handler.js',
    '/var/runtime/index.mjs'
  ]
}

.next JSON files

None

ben221199 avatar Oct 13 '23 08:10 ben221199

It seems that it will fail when next/head is imported during preview mode.

ben221199 avatar Oct 13 '23 10:10 ben221199

I'm also getting the error when deployed to Vercel.

This is not whilst using preview mode, just standard browsing of the site.

popmatik avatar Oct 13 '23 15:10 popmatik

I encountered the same issue and was able to work around this for now by downgrading and pinning my application to "next": "13.4.8".

bkochendorfer avatar Oct 17 '23 19:10 bkochendorfer

@bkochendorfer thanks! this works! will use this version for now..

pcastr0 avatar Oct 21 '23 20:10 pcastr0

Can confirm @bkochendorfer 's suggestion works. Downgrading is the way to go for now. Thank you so much!

DanielBiegler avatar Oct 22 '23 15:10 DanielBiegler

Having this issue with preview mode off.

  • @netlify/plugin-nextjs version 4.37.1
  • next version 13.5.6

I was able to work around this by downgrading to NextJS 13.4.12. I did not try any other version combinations.

Error from Netlify Logs
ERROR	Error: Cannot find module 'next/dist/server/future/route-modules/pages/vendored/contexts/amp-context'
Require stack:
- /var/task/node_modules/next/dist/shared/lib/head.js
- /var/task/node_modules/next/head.js
- /var/task/node_modules/next-seo/lib/next-seo.js
- /var/task/.next/server/pages/_app.js
- /var/task/node_modules/next/dist/server/require.js
- /var/task/node_modules/next/dist/server/next-server.js
- /var/task/.netlify/functions-internal/___netlify-odb-handler/___netlify-odb-handler.js
- /var/task/___netlify-odb-handler.js
- /var/runtime/index.mjs
    at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15)
    at /var/task/node_modules/next/dist/server/require-hook.js:54:36
    at Module._load (node:internal/modules/cjs/loader:922:27)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at mod.require (/var/task/node_modules/next/dist/server/require-hook.js:62:32)
    at require (node:internal/modules/cjs/helpers:119:18)
    at Object.<anonymous> (/var/task/node_modules/next/dist/shared/lib/head.js:29:34)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/var/task/node_modules/next/dist/shared/lib/head.js',
    '/var/task/node_modules/next/head.js',
    '/var/task/node_modules/next-seo/lib/next-seo.js',
    '/var/task/.next/server/pages/_app.js',
    '/var/task/node_modules/next/dist/server/require.js',
    '/var/task/node_modules/next/dist/server/next-server.js',
    '/var/task/.netlify/functions-internal/___netlify-odb-handler/___netlify-odb-handler.js',
    '/var/task/___netlify-odb-handler.js',
    '/var/runtime/index.mjs'
  ]
}

Edit: Added error message

dsteenburgh-navan avatar Oct 24 '23 01:10 dsteenburgh-navan

Same problem here.

The full error message from our function log:

Oct 24, 02:53:01 PM: 6b47ed99 ERROR  Error: Cannot find module 'next/dist/server/future/route-modules/pages/vendored/contexts/amp-context'
Require stack:
- /var/task/node_modules/next/dist/shared/lib/head.js
- /var/task/node_modules/next/head.js
- /var/task/.next/server/pages/_app.js
- /var/task/node_modules/next/dist/server/require.js
- /var/task/node_modules/next/dist/server/next-server.js
- /var/task/.netlify/functions-internal/___netlify-handler/___netlify-handler.js
- /var/task/___netlify-handler.js
- /var/runtime/index.mjs
    at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15)
    at /var/task/node_modules/next/dist/server/require-hook.js:54:36
    at Module._load (node:internal/modules/cjs/loader:922:27)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at mod.require (/var/task/node_modules/next/dist/server/require-hook.js:62:32)
    at require (node:internal/modules/cjs/helpers:119:18)
    at Object.<anonymous> (/var/task/node_modules/next/dist/shared/lib/head.js:29:34)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/var/task/node_modules/next/dist/shared/lib/head.js',
    '/var/task/node_modules/next/head.js',
    '/var/task/.next/server/pages/_app.js',
    '/var/task/node_modules/next/dist/server/require.js',
    '/var/task/node_modules/next/dist/server/next-server.js',
    '/var/task/.netlify/functions-internal/___netlify-handler/___netlify-handler.js',
    '/var/task/___netlify-handler.js',
    '/var/runtime/index.mjs'
  ]
}

kdmcguire avatar Oct 24 '23 14:10 kdmcguire

Got the same issue here, with Next v14. Downgrading to Next v13.4.19 solves the issue for now.

laurent-le-graverend avatar Oct 28 '23 10:10 laurent-le-graverend

We're having a similar issue and we're not using preview mode. It appears to happen on pages that use getServerSideProps and import Head from 'next/head';

Not working: @netlify/[email protected] & [email protected] Working: @netlify/[email protected] & [email protected]

ERROR Error: Cannot find module 'next/dist/server/future/route-modules/pages/vendored/contexts/head-manager-context'

We have just upgraded to 13 and still use the /pages router if that makes a difference.

justynspooner avatar Oct 30 '23 18:10 justynspooner

Also seeing this error on deploy to netlify (next14 with pages routing):

Runtime.UnhandledPromiseRejection: Error: Cannot find module 'next/dist/server/future/route-modules/pages/vendored/contexts/amp-context'

Not able to reproduce locally, the file exists in my node_modules directory. Removing my _document.js file didn't stop the error from occurring.

Running the build inside a minimal Docker container works well as a workaround, no issues with v14.

niall-byrne avatar Nov 04 '23 01:11 niall-byrne

Im having the same issue

eliasm307 avatar Nov 06 '23 21:11 eliasm307

Same issue here (also fixed for now by going back down to 13.4.9)

kai-CuroWork avatar Nov 06 '23 21:11 kai-CuroWork

Got the same issue here, with Next v14. Downgrading to Next v13.4.19 solves the issue for now.

This worked for me as a stop gap

eliasm307 avatar Nov 06 '23 21:11 eliasm307

Downgrading to Next v13.4.19 solves the issue for me also.

cdking007 avatar Nov 07 '23 13:11 cdking007

I had this issue and the only way I could solve it was to move from netlify to vercel :(

shortcircuit3 avatar Nov 13 '23 18:11 shortcircuit3

Any idea what is going on here? @Skn0tt

kylekirkby avatar Nov 16 '23 23:11 kylekirkby

I am having a similar error, previewing with Prismic on a NextJS site.

Nov 17, 02:19:27 PM: f4700146 ERROR   ⨯ Error: Cannot find module 'next/dist/server/future/route-modules/pages/vendored/contexts/head-manager-context'
Require stack:
- /var/task/node_modules/next/dist/client/script.js
- /var/task/node_modules/next/script.js
- /var/task/node_modules/@prismicio/next/dist/PrismicPreview.cjs
- /var/task/node_modules/@prismicio/next/dist/index.cjs
- /var/task/apps/web/.next/server/pages/api/preview.js
- /var/task/node_modules/next/dist/server/future/helpers/module-loader/node-module-loader.js
- /var/task/node_modules/next/dist/server/future/helpers/module-loader/route-module-loader.js
- /var/task/node_modules/next/dist/server/next-server.js
- /var/task/apps/web/.netlify/functions-internal/___netlify-handler/___netlify-handler.js
- /var/task/___netlify-handler.js
- /var/runtime/index.mjs
    at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15)
    at /var/task/node_modules/next/dist/server/require-hook.js:54:36
    at Module._load (node:internal/modules/cjs/loader:922:27)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at mod.require (/var/task/node_modules/next/dist/server/require-hook.js:62:32)
    at require (node:internal/modules/cjs/helpers:119:18)
    at Object.<anonymous> (/var/task/node_modules/next/dist/client/script.js:33:42)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/var/task/node_modules/next/dist/client/script.js',
    '/var/task/node_modules/next/script.js',
    '/var/task/node_modules/@prismicio/next/dist/PrismicPreview.cjs',
    '/var/task/node_modules/@prismicio/next/dist/index.cjs',
    '/var/task/apps/web/.next/server/pages/api/preview.js',
    '/var/task/node_modules/next/dist/server/future/helpers/module-loader/node-module-loader.js',
    '/var/task/node_modules/next/dist/server/future/helpers/module-loader/route-module-loader.js',
    '/var/task/node_modules/next/dist/server/next-server.js',
    '/var/task/apps/web/.netlify/functions-internal/___netlify-handler/___netlify-handler.js',
    '/var/task/___netlify-handler.js',
    '/var/runtime/index.mjs'
  ]
}

"@netlify/plugin-nextjs": "^4.41.2" "next": "^14.0.3",

Fixed it by downgrading to "next": "^13.4.19",

digeverything avatar Nov 17 '23 19:11 digeverything

I am also seeing a similar deploy only issue on pages that use getServerSideProps and import Head from 'next/head' and add metadata. 500 error. Using page routing and NextJS 14.0.2. Downgrading back to 13.4.8 is a work-around for me. For some reason 13.4.19 did not resolve it for me.

ericpias avatar Nov 21 '23 13:11 ericpias

Hey folks, there's a related discussion going on in Netlify's support forum here: https://answers.netlify.com/t/next-js-14-upgrade-results-in-500-status-code/105786/4

In essence, it sounds like they might be working on an overhaul of how Next.js runs on Netlify* and they'd rather focus on that than keep playing whack-a-mole with the current system, as the rate of Next.js updates encountering problems on Netlify is increasing.

*I can't say that for sure, I don't work there, but that's what I inferred from the responses.

kdmcguire avatar Nov 21 '23 13:11 kdmcguire

same error for "next": "^13.4.6"

smyja avatar Dec 03 '23 12:12 smyja

Since most messages are from November, I wanted to mention that it's still an issue. I upgraded to Next 14 and pages with getServerSideProps, broke with the same error.

I see that the issue has been open for 2 months now. I don't mind Vercel making things hard for other providers, but I would like some confirmation or estimate from Netlify.

dimitrisnl avatar Dec 21 '23 11:12 dimitrisnl

The bug is still present today. Next 14.0.4. Didn't find a solution.

vdavid avatar Jan 14 '24 17:01 vdavid

I have a similar issue when deployed to Netlify; locally work fine?

I am trying different versions of the next 13 but have had no luck so far.

Some have issue with amp-context module my one with head-manager-context module

Jan 17, 01:39:03 PM: d43a33f1 ERROR  Error: Cannot find module 'next/dist/server/future/route-modules/pages/vendored/contexts/head-manager-context'
Require stack:
- /var/task/node_modules/next/dist/client/script.js
- /var/task/node_modules/next/dist/shared/lib/router/router.js
- /var/task/node_modules/next/dist/client/router.js
- /var/task/node_modules/next/router.js
- /var/task/node_modules/nextjs-progressbar/dist/index.js
- /var/task/.next/server/pages/_app.js
- /var/task/node_modules/next/dist/server/require.js
- /var/task/node_modules/next/dist/server/next-server.js
- /var/task/.netlify/functions-internal/___netlify-odb-handler/___netlify-odb-handler.js
- /var/task/___netlify-odb-handler.js
- /var/runtime/index.mjs
    at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15)
    at /var/task/node_modules/next/dist/server/require-hook.js:54:36
    at Module._load (node:internal/modules/cjs/loader:922:27)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at mod.require (/var/task/node_modules/next/dist/server/require-hook.js:62:32)
    at require (node:internal/modules/cjs/helpers:119:18)
    at Object.<anonymous> (/var/task/node_modules/next/dist/client/script.js:33:42)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/var/task/node_modules/next/dist/client/script.js',
    '/var/task/node_modules/next/dist/shared/lib/router/router.js',
    '/var/task/node_modules/next/dist/client/router.js',
    '/var/task/node_modules/next/router.js',
    '/var/task/node_modules/nextjs-progressbar/dist/index.js',
    '/var/task/.next/server/pages/_app.js',
    '/var/task/node_modules/next/dist/server/require.js',
    '/var/task/node_modules/next/dist/server/next-server.js',
    '/var/task/.netlify/functions-internal/___netlify-odb-handler/___netlify-odb-handler.js',
    '/var/task/___netlify-odb-handler.js',
    '/var/runtime/index.mjs'
  ]
}

patrickhladun avatar Jan 17 '24 13:01 patrickhladun

Same issue when trying to build using output: "standalone" for any project that uses new @next/third-parties script.

Get the following error on startup:

 Cannot find module 'next/dist/server/future/route-modules/pages/vendored/contexts/head-manager-context'

roman-yakobnyuk avatar Jan 18 '24 07:01 roman-yakobnyuk

I found a solution to my problem, and I want to share it with you in case it can help.

In my situation, downgrading nextjs to the previous version didn't solve the issue. So, I started to investigate my code. During this process, I was removing third-party code from the _app.js file and discovered that the culprit was the nextjs-progressbar package.

I hope this information is useful to someone.

I have a similar issue when deployed to Netlify; locally work fine?

I am trying different versions of the next 13 but have had no luck so far.

Some have issue with amp-context module my one with head-manager-context module

Jan 17, 01:39:03 PM: d43a33f1 ERROR  Error: Cannot find module 'next/dist/server/future/route-modules/pages/vendored/contexts/head-manager-context'
Require stack:
- /var/task/node_modules/next/dist/client/script.js
- /var/task/node_modules/next/dist/shared/lib/router/router.js
- /var/task/node_modules/next/dist/client/router.js
- /var/task/node_modules/next/router.js
- /var/task/node_modules/nextjs-progressbar/dist/index.js
- /var/task/.next/server/pages/_app.js
- /var/task/node_modules/next/dist/server/require.js
- /var/task/node_modules/next/dist/server/next-server.js
- /var/task/.netlify/functions-internal/___netlify-odb-handler/___netlify-odb-handler.js
- /var/task/___netlify-odb-handler.js
- /var/runtime/index.mjs
    at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15)
    at /var/task/node_modules/next/dist/server/require-hook.js:54:36
    at Module._load (node:internal/modules/cjs/loader:922:27)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at mod.require (/var/task/node_modules/next/dist/server/require-hook.js:62:32)
    at require (node:internal/modules/cjs/helpers:119:18)
    at Object.<anonymous> (/var/task/node_modules/next/dist/client/script.js:33:42)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/var/task/node_modules/next/dist/client/script.js',
    '/var/task/node_modules/next/dist/shared/lib/router/router.js',
    '/var/task/node_modules/next/dist/client/router.js',
    '/var/task/node_modules/next/router.js',
    '/var/task/node_modules/nextjs-progressbar/dist/index.js',
    '/var/task/.next/server/pages/_app.js',
    '/var/task/node_modules/next/dist/server/require.js',
    '/var/task/node_modules/next/dist/server/next-server.js',
    '/var/task/.netlify/functions-internal/___netlify-odb-handler/___netlify-odb-handler.js',
    '/var/task/___netlify-odb-handler.js',
    '/var/runtime/index.mjs'
  ]
}

patrickhladun avatar Jan 19 '24 14:01 patrickhladun

Just to add. I resolved this issue on Vercel by disabling build cache and redeploying.

popmatik avatar Jan 23 '24 08:01 popmatik

Hey everyone. amp-context and head-manager-context are imported dynamically by next/head, which means they won't be properly included in the Netlify function. We can force them to be added by using netlify.toml:

[functions]
  included_files = [
  "node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/amp-context*",
  "node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/head-manager-context*",
]

This solved the issue for me.

martinnabhan avatar Jan 24 '24 05:01 martinnabhan

Hey everyone. amp-context and head-manager-context are imported dynamically by next/head, which means they won't be properly included in the Netlify function. We can force them to be added by using netlify.toml:

[functions]
  included_files = [
  "node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/amp-context*",
  "node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/head-manager-context*",
]

This solved the issue for me.

Thanks this worked! In my case, i had to add router-context aswell:

[functions]
included_files = [
  "node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/router-context*",
  "node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/amp-context*",
  "node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/head-manager-context*",
]

oskarhertzman avatar Jan 24 '24 10:01 oskarhertzman

Hi,

I tried to include the files but it is not working. I am wondering if this has to do with my nx monorepro. Anybody using NX repro and using include_files?

nolafs avatar Jan 24 '24 13:01 nolafs

You need to add the correct path to includes_files. Since you're using a monorepo I guess you have multiple node_modules folders, so you have to add the path to the node_modules folder which contains next.

martinnabhan avatar Jan 26 '24 02:01 martinnabhan