Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: Runtime.ImportModuleError - Error: Cannot find module 'follow-redirects' when deploying with netlify-cli and pnpm #2323

Closed
2 of 3 tasks
elliottsj opened this issue Oct 10, 2023 · 7 comments
Labels
type: bug code to address defects in shipped code v4 Issues related to the v4 Next.js runtime

Comments

@elliottsj
Copy link

elliottsj commented Oct 10, 2023

Summary

When using:

A module import error Cannot find module 'follow-redirects' occurs when visiting the site.

A link to a reproduction repository

https://github.com/elliottsj/nextjs-netlify-follow-redirects-issue

https://nextjs-follow-redirects-docs.netlify.app/

Expected Result

No error

Actual Result

Runtime.ImportModuleError - Error: Cannot find module 'follow-redirects' Require stack: - /var/task/.netlify/functions-internal/___netlify-handler/handlerUtils.js - /var/task/.netlify/functions-internal/___netlify-handler/___netlify-handler.js - /var/task/___netlify-handler.js - /var/runtime/index.mjs

Steps to reproduce

Visit https://github.com/elliottsj/nextjs-netlify-follow-redirects-issue and follow the steps in the README.

To deploy to a new Netlify site, change the --site value in apps/docs/package.json.

Next Runtime version

4.40.2

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
  • I am building using file-based configuration (netlify.toml)

What OS are you using?

Mac OS

Your netlify.toml file

`netlify.toml`
[build]
  command = "pnpm run build"
  base = "apps/docs"
  publish = ".next"

[build.environment]
  NETLIFY_USE_PNPM = "true"

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

Your public/_redirects file

`_redirects`
# Paste content of your `_redirects` file here

Your next.config.js file

`next.config.js`
module.exports = {
  reactStrictMode: true,
  transpilePackages: ["ui"],
};

Builds logs (or link to your logs)

Build logs
❯ pnpm run deploy --filter=docs --force

> my-turborepo@ deploy /Users/spencer/Dev/elliottsj/nextjs-netlify-follow-redirects-issue
> turbo run deploy --concurrency=1 "--filter=docs" "--force"

╭────────────────────────────────────────────────────────────────────────╮
│                                                                        │
│                  Update available v1.10.14 ≫ v1.10.15                  │
│    Changelog: https://github.com/vercel/turbo/releases/tag/v1.10.15    │
│               Run "npx @turbo/codemod update" to update                │
│                                                                        │
│      Follow @turborepo for updates: https://twitter.com/turborepo      │
╰────────────────────────────────────────────────────────────────────────╯
• Packages in scope: docs
• Running deploy in 1 packages
• Remote caching disabled
docs:deploy: cache bypass, force executing ac934134be8bf4d8
docs:deploy:
docs:deploy: > [email protected] deploy /Users/spencer/Dev/elliottsj/nextjs-netlify-follow-redirects-issue/apps/docs
docs:deploy: > netlify deploy --build --prod --auth $NETLIFY_AUTH_TOKEN --site 412ef113-aa7d-4f00-9c58-8cc9a4a885e1 --skip-functions-cache
docs:deploy:
docs:deploy:
docs:deploy: Netlify Build
docs:deploy: ────────────────────────────────────────────────────────────────
docs:deploy:
docs:deploy: ❯ Version
docs:deploy:   @netlify/build 29.22.2
docs:deploy:
docs:deploy: ❯ Flags
docs:deploy:   {}
docs:deploy:
docs:deploy: ❯ Current directory
docs:deploy:   /Users/spencer/Dev/elliottsj/nextjs-netlify-follow-redirects-issue/apps/docs
docs:deploy:
docs:deploy: ❯ Config file
docs:deploy:   /Users/spencer/Dev/elliottsj/nextjs-netlify-follow-redirects-issue/apps/docs/netlify.toml
docs:deploy:
docs:deploy: ❯ Context
docs:deploy:   dev
docs:deploy:
docs:deploy: ❯ Using Next.js Runtime - v4.40.2
docs:deploy:
docs:deploy: @netlify/plugin-nextjs (onPreBuild event)
docs:deploy: ────────────────────────────────────────────────────────────────
docs:deploy:
docs:deploy: No Next.js cache to restore.
docs:deploy: Netlify configuration property "build.environment.NEXT_PRIVATE_TARGET" value changed.
docs:deploy:
docs:deploy: (@netlify/plugin-nextjs onPreBuild completed in 797ms)
docs:deploy:
docs:deploy: build.command from netlify.toml
docs:deploy: ────────────────────────────────────────────────────────────────
docs:deploy:
docs:deploy: $ pnpm run build
docs:deploy:
docs:deploy: > [email protected] build /Users/spencer/Dev/elliottsj/nextjs-netlify-follow-redirects-issue/apps/docs
docs:deploy: > next build
docs:deploy:
docs:deploy:    Creating an optimized production build ...
docs:deploy:  ✓ Compiled successfully
docs:deploy:    Linting and checking validity of types ...
docs:deploy:    Collecting page data ...
docs:deploy:    Generating static pages (0/4) ...
   Generating static pages (1/4)
   Generating static pages (2/4)
   Generating static pages (3/4)
 ✓ Generating static pages (4/4)
docs:deploy:    Finalizing page optimization ...
docs:deploy:    Collecting build traces ...
docs:deploy:
docs:deploy: Route (app)                              Size     First Load JS
docs:deploy: ┌ ○ /                                    745 B          81.1 kB
docs:deploy: └ ○ /_not-found                          883 B          81.2 kB
docs:deploy: + First Load JS shared by all            80.3 kB
docs:deploy:   ├ chunks/05ad1faf-649722ada73fd971.js  51 kB
docs:deploy:   ├ chunks/183-2889461cbead6e9f.js       27.5 kB
docs:deploy:   ├ chunks/main-app-f0d99205d70d78b5.js  232 B
docs:deploy:   └ chunks/webpack-bf1a64d1eafd2816.js   1.66 kB
docs:deploy:
docs:deploy:
docs:deploy: ○  (Static)  automatically rendered as static HTML (uses no initial props)
docs:deploy:
docs:deploy:
docs:deploy: (build.command completed in 9.1s)
docs:deploy:
docs:deploy: @netlify/plugin-nextjs (onBuild event)
docs:deploy: ────────────────────────────────────────────────────────────────
docs:deploy:
docs:deploy: apiLambdas []
docs:deploy: ssrLambdas []
docs:deploy: Moving static page files to serve from CDN...
docs:deploy: Moved 6 files
docs:deploy: You are not using Netlify Edge Functions for image format detection. Set env var "NEXT_FORCE_EDGE_IMAGES=true" to enable.
docs:deploy: Netlify configuration property "redirects" value changed to [
docs:deploy:   { from: '/_next/static/*', to: '/static/:splat', status: 200 },
docs:deploy:   {
docs:deploy:     from: '/_next/image*',
docs:deploy:     query: { url: ':url', w: ':width', q: ':quality' },
docs:deploy:     to: '/_ipx/w_:width,q_:quality/:url',
docs:deploy:     status: 301
docs:deploy:   },
docs:deploy:   { from: '/_ipx/*', to: '/.netlify/builders/_ipx', status: 200 },
docs:deploy:   {
docs:deploy:     from: '/api/*',
docs:deploy:     to: '/.netlify/functions/___netlify-handler',
docs:deploy:     status: 200
docs:deploy:   },
docs:deploy:   {
docs:deploy:     from: '/*',
docs:deploy:     to: '/.netlify/functions/___netlify-handler',
docs:deploy:     status: 200,
docs:deploy:     conditions: { Cookie: [Array] },
docs:deploy:     force: true
docs:deploy:   },
docs:deploy:   {
docs:deploy:     from: '/_next/data/qjjfVGZxqabXDPFcxPBE-/_not-found.json',
docs:deploy:     to: '/.netlify/functions/___netlify-handler',
docs:deploy:     status: 200,
docs:deploy:     force: false
docs:deploy:   },
docs:deploy:   {
docs:deploy:     from: '/_not-found',
docs:deploy:     to: '/.netlify/functions/___netlify-handler',
docs:deploy:     status: 200,
docs:deploy:     force: false
docs:deploy:   },
docs:deploy:   {
docs:deploy:     from: '/*',
docs:deploy:     to: '/.netlify/functions/___netlify-handler',
docs:deploy:     status: 200
docs:deploy:   }
docs:deploy: ].
docs:deploy:
docs:deploy: (@netlify/plugin-nextjs onBuild completed in 974ms)
docs:deploy:
docs:deploy: Functions bundling
docs:deploy: ────────────────────────────────────────────────────────────────
docs:deploy:
docs:deploy: Packaging Functions from .netlify/functions-internal directory:
docs:deploy:  - ___netlify-handler/___netlify-handler.js
docs:deploy:  - ___netlify-odb-handler/___netlify-odb-handler.js
docs:deploy:  - _ipx/_ipx.js
docs:deploy:
docs:deploy:
docs:deploy: (Functions bundling completed in 15s)
docs:deploy:
docs:deploy: Edge Functions bundling
docs:deploy: ────────────────────────────────────────────────────────────────
docs:deploy:
docs:deploy: Packaging Edge Functions from .netlify/edge-functions directory:
docs:deploy:  - rsc-data
docs:deploy:
docs:deploy: (Edge Functions bundling completed in 731ms)
docs:deploy:
docs:deploy: @netlify/plugin-nextjs (onPostBuild event)
docs:deploy: ────────────────────────────────────────────────────────────────
docs:deploy:
docs:deploy: Next.js cache saved.
docs:deploy:
docs:deploy: (@netlify/plugin-nextjs onPostBuild completed in 52ms)
docs:deploy:
docs:deploy: Netlify Build Complete
docs:deploy: ────────────────────────────────────────────────────────────────
docs:deploy:
docs:deploy: (Netlify Build completed in 27.6s)
docs:deploy: Deploy path:        /Users/spencer/Dev/elliottsj/nextjs-netlify-follow-redirects-issue/apps/docs/.next
docs:deploy: Configuration path: /Users/spencer/Dev/elliottsj/nextjs-netlify-follow-redirects-issue/apps/docs/netlify.toml
docs:deploy: Deploying to main site URL...
docs:deploy: - Hashing files...
docs:deploy: - Looking for a functions cache...
docs:deploy: ✔ Ignoring functions cache (use without --skip-functions-cache to change)
docs:deploy: ✔ Finished hashing 24 files, 3 functions and edge functions
docs:deploy: - CDN diffing files...
docs:deploy: ✔ CDN requesting 9 files and 2 functions
docs:deploy: - Uploading 12 files
docs:deploy: ✔ Finished uploading 12 assets
docs:deploy: - Waiting for deploy to go live...
docs:deploy: ✔ Deploy is live!
docs:deploy:
docs:deploy: Build logs:        https://app.netlify.com/sites/nextjs-follow-redirects-docs/deploys/65259c8e687e5f1af68d21b6
docs:deploy: Function logs:     https://app.netlify.com/sites/nextjs-follow-redirects-docs/functions
docs:deploy: Unique deploy URL: https://65259c8e687e5f1af68d21b6--nextjs-follow-redirects-docs.netlify.app
docs:deploy: Website URL:       https://nextjs-follow-redirects-docs.netlify.app

 Tasks:    1 successful, 1 total
Cached:    0 cached, 1 total
  Time:    42.655s

Function logs

Function logs
Oct 10, 03:10:50 PM: 976f7d04 2023-10-10T19:10:50.697Z	undefined	ERROR	Uncaught Exception 	{"errorType":"Runtime.ImportModuleError","errorMessage":"Error: Cannot find module 'follow-redirects'\nRequire stack:\n- /var/task/.netlify/functions-internal/___netlify-handler/handlerUtils.js\n- /var/task/.netlify/functions-internal/___netlify-handler/___netlify-handler.js\n- /var/task/___netlify-handler.js\n- /var/runtime/index.mjs","stack":["Runtime.ImportModuleError: Error: Cannot find module 'follow-redirects'","Require stack:","- /var/task/.netlify/functions-internal/___netlify-handler/handlerUtils.js","- /var/task/.netlify/functions-internal/___netlify-handler/___netlify-handler.js","- /var/task/___netlify-handler.js","- /var/runtime/index.mjs","    at _loadUserApp (file:///var/runtime/index.mjs:1061:17)","    at async UserFunction.js.module.exports.load (file:///var/runtime/index.mjs:1093:21)","    at async start (file:///var/runtime/index.mjs:1256:23)","    at async file:///var/runtime/index.mjs:1262:1"]}Oct 10, 03:10:50 PM: 976f7d04 2023-10-10T19:10:50.903Z	undefined	ERROR	Uncaught Exception 	{"errorType":"Runtime.ImportModuleError","errorMessage":"Error: Cannot find module 'follow-redirects'\nRequire stack:\n- /var/task/.netlify/functions-internal/___netlify-handler/handlerUtils.js\n- /var/task/.netlify/functions-internal/___netlify-handler/___netlify-handler.js\n- /var/task/___netlify-handler.js\n- /var/runtime/index.mjs","stack":["Runtime.ImportModuleError: Error: Cannot find module 'follow-redirects'","Require stack:","- /var/task/.netlify/functions-internal/___netlify-handler/handlerUtils.js","- /var/task/.netlify/functions-internal/___netlify-handler/___netlify-handler.js","- /var/task/___netlify-handler.js","- /var/runtime/index.mjs","    at _loadUserApp (file:///var/runtime/index.mjs:1061:17)","    at async UserFunction.js.module.exports.load (file:///var/runtime/index.mjs:1093:21)","    at async start (file:///var/runtime/index.mjs:1256:23)","    at async file:///var/runtime/index.mjs:1262:1"]}Oct 10, 03:10:50 PM: 976f7d04 Unknown application error occurredOct 10, 03:10:50 PM: 976f7d04 Runtime.ImportModuleErrorOct 10, 03:10:50 PM: 976f7d04 Duration: 224.65 ms	Memory Usage: 18 MB	

.next JSON files

generated .next JSON files

.next/build-manifest.json

{
  "polyfillFiles": [
    "static/chunks/polyfills.js"
  ],
  "devFiles": [
    "static/chunks/react-refresh.js"
  ],
  "ampDevFiles": [],
  "lowPriorityFiles": [
    "static/development/_buildManifest.js",
    "static/development/_ssgManifest.js"
  ],
  "rootMainFiles": [],
  "pages": {
    "/": [
      "static/chunks/webpack.js",
      "static/chunks/main.js",
      "static/chunks/pages/index.js"
    ],
    "/_app": [
      "static/chunks/webpack.js",
      "static/chunks/main.js",
      "static/chunks/pages/_app.js"
    ],
    "/_error": [
      "static/chunks/webpack.js",
      "static/chunks/main.js",
      "static/chunks/pages/_error.js"
    ]
  },
  "ampFirstPages": []
}

.next/server/pages-manifest.json

{
  "/_app": "pages/_app.js",
  "/_error": "pages/_error.js",
  "/_document": "pages/_document.js",
  "/": "pages/index.js"
}
@elliottsj elliottsj added the type: bug code to address defects in shipped code label Oct 10, 2023
@elliottsj
Copy link
Author

Related: #1834

I have tried with and without public-hoist-pattern[] = follow-redirects in .npmrc, and the same result occurs.

@MarcL
Copy link
Contributor

MarcL commented Oct 11, 2023

Hey @elliottsj - thanks for raising this.
We've seen a few issues with Next 13.5+ and our runtime which we're trying to sort out.
Once this PR is merged and released, can you try building again?

#2313

Also, we're working on some major improvements to the runtime which should make future Next.js version support on Netlify much better. 👍🏻

@kaf-lamed-beyt
Copy link

Hey @elliottsj - thanks for raising this. We've seen a few issues with Next 13.5+ and our runtime which we're trying to sort out. Once this PR is merged and released, can you try building again?

#2313

Also, we're working on some major improvements to the runtime which should make future Next.js version support on Netlify much better. 👍🏻

Hi @MarcL, #2313 has been merged. But the Runtime.ImportModule error still persists in my project. I'm using [email protected]

@MarcL MarcL added v4 Issues related to the v4 Next.js runtime and removed Ecosystem: Frameworks labels Mar 13, 2024
@serhalp
Copy link
Contributor

serhalp commented Jun 4, 2024

Hi @elliottsj @kaf-lamed-beyt

The team at Netlify have now released the new v5 Next.js runtime which has support for both pages and app router, on-demand and time-based revalidation, automatic fine-grained cache control, and automatic image optimization using Netlify's image CDN.

You can find the documentation and additional information on the new runtime here: Next.js on Netlify

The v4 runtime is now in the maintenance support phase with no new features being added. Occasional bug fixes and security patches will be applied when needed.

Thanks!

@serhalp serhalp closed this as completed Jun 4, 2024
@kaf-lamed-beyt
Copy link

Ayy! Great work! 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: bug code to address defects in shipped code v4 Issues related to the v4 Next.js runtime
Projects
None yet
Development

No branches or pull requests

4 participants