I create a fresh next project using npx create-next-app fresh-web-app. I run next build and get the following error:
▲ Next.js 15.1.5 Creating an optimized production build ... ✓ Compiled successfully ✓ Linting and checking validity of types ✓ Collecting page data TypeError: Cannot read properties of null (reading 'useContext') at g (.next/server/pages/_error.js:6:12422) Error occurred prerendering page "/404". Read more: TypeError: Cannot read properties of null (reading 'useContext') at exports.useContext (/Projects/fresh-web-app/node_modules/react/cjs/react.production.js:488:33) at g (/Projects/fresh-web-app/.next/server/pages/_error.js:6:12422) at renderWithHooks (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4189:18) at renderElement (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4327:14) at retryNode (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4871:16) at renderNodeDestructive (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4689:7) at renderNode (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:5128:14) at renderChildrenArray (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:5019:7) at retryNode (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4885:9) at renderNodeDestructive (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4689:7) Export encountered an error on /_error: /404, exiting the build. ⨯ Static worker exited with code: 1 and signal: null
I've tried selecting "app router - yes" and "app router - no" in the
create-next-appoptions. Neither fix the issue. I have checked and
useContextis not in any of the project files (except in files in the ./next directory).
Curiously, if I instead use
npm run buildthen the project builds correctly. The problem is that builds also fail when deploying remotely (with Netlify).
npm version = 10.7.0
node version = v18.20.3
nvm version = 0.40.1
This is the project structure:
/.next
/app
-favicon.ico
-globals.css
-layout.js
-page.js
/node_modules
/public
-.gitignore
-jsconfig.json
-next.config.mjs
-package.json
-postcss.config.mjs
-README.md
-tailwind.config.mjs
I've tried this many times and am really stuck.
I create a fresh next project using npx create-next-app fresh-web-app. I run next build and get the following error:
▲ Next.js 15.1.5 Creating an optimized production build ... ✓ Compiled successfully ✓ Linting and checking validity of types ✓ Collecting page data TypeError: Cannot read properties of null (reading 'useContext') at g (.next/server/pages/_error.js:6:12422) Error occurred prerendering page "/404". Read more: https://nextjs./docs/messages/prerender-error TypeError: Cannot read properties of null (reading 'useContext') at exports.useContext (/Projects/fresh-web-app/node_modules/react/cjs/react.production.js:488:33) at g (/Projects/fresh-web-app/.next/server/pages/_error.js:6:12422) at renderWithHooks (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4189:18) at renderElement (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4327:14) at retryNode (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4871:16) at renderNodeDestructive (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4689:7) at renderNode (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:5128:14) at renderChildrenArray (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:5019:7) at retryNode (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4885:9) at renderNodeDestructive (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4689:7) Export encountered an error on /_error: /404, exiting the build. ⨯ Static worker exited with code: 1 and signal: null
I've tried selecting "app router - yes" and "app router - no" in the
create-next-appoptions. Neither fix the issue. I have checked and
useContextis not in any of the project files (except in files in the ./next directory).
Curiously, if I instead use
npm run buildthen the project builds correctly. The problem is that builds also fail when deploying remotely (with Netlify).
npm version = 10.7.0
node version = v18.20.3
nvm version = 0.40.1
This is the project structure:
/.next
/app
-favicon.ico
-globals.css
-layout.js
-page.js
/node_modules
/public
-.gitignore
-jsconfig.json
-next.config.mjs
-package.json
-postcss.config.mjs
-README.md
-tailwind.config.mjs
I've tried this many times and am really stuck.
Share Improve this question asked Feb 17 at 1:04 nicholas_randallnicholas_randall 1762 silver badges7 bronze badges 1- I'm able to reproduce this using the latest version of create-next-app (15.1.7) and Next (15.1.17) – Kyle Pollard ♦ Commented Feb 17 at 1:29
1 Answer
Reset to default 0This is because you're running next build
globally, which apparently is unsupported.
I opened an issue in Next.js's repo thinking it was a bug. However, they commented back saying that it's not supported to run next
as a globally installed command and that you should use npm run build
instead:
Locally, by using
npm run build
, you ensure that the build process uses the exact version of Next.js and other dependencies specified in your project's package.json file . This helps maintain consistency across different environments and prevents potential issues caused by mismatched versions, etc.Source
So, when running locally, you should be running npm run build
instead of running next build
.
When running on Netlify, you should consider setting the build command to also be npm run build
. For an existing site, you'll want to go to "Site configuration > Build & deploy > Continuous deployment > Build settings" and set the command there.