Meshery showing errors while setting it up locally?

While following these steps to set up meshery locally, I was having some issues:

  1. make ui-setup command is working fine with approximately 334 changes made automatically in both ui/components and ui/pages directories.
  2. While running make ui-build command:
 make ui-build
cd ui; npm i; cd ..

> meshery-ui@1.0.0 postinstall
> patch-package

patch-package 6.4.7
Applying patches...
No patch files found

> meshery-ui@1.0.0 prepare
> cd .. && husky install ui/.husky

husky - Git hooks installed

up to date, audited 1361 packages in 5s

325 packages are looking for funding
  run `npm fund` for details

16 vulnerabilities (7 low, 3 moderate, 6 high)

To address issues that do not require attention, run:
  npm audit fix

To address all issues possible (including breaking changes), run:
  npm audit fix --force

Some issues need review, and may require choosing
a different dependency.

Run `npm audit` for details.
cd provider-ui; npm i; cd ..
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: 'provider-ui@1.0.0',
npm warn EBADENGINE   required: { node: '^16 || ^18' },
npm warn EBADENGINE   current: { node: 'v20.9.0', npm: '10.9.0' }
npm warn EBADENGINE }

up to date, audited 509 packages in 4s

153 packages are looking for funding
  run `npm fund` for details

2 vulnerabilities (1 moderate, 1 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.
cd ui; npm run lint:fix && npm run build && npm run export; cd ..

> meshery-ui@1.0.0 lint:fix
> next lint --fix

✔ No ESLint warnings or errors

> meshery-ui@1.0.0 build
> npm run clean && cross-env next build


> meshery-ui@1.0.0 clean
> rm -rf .next,out

info  - Linting and checking validity of types  
info  - Disabled SWC as replacement for Babel because of custom Babel configuration ".babelrc" https://nextjs.org/docs/messages/swc-disabled
info  - `compiler` options in `next.config.js` will be ignored while using Babel https://nextjs.org/docs/messages/ignored-compiler-options
Browserslist: caniuse-lite is outdated. Please run:
  npx browserslist@latest --update-db
  Why you should do it regularly: https://github.com/browserslist/browserslist#browsers-data-updating
info  - Creating an optimized production build  
info  - Compiled successfully
warn  - Restarted collecting page data for /_app because it took more than 60 seconds
warn  - See more info here https://nextjs.org/docs/messages/static-page-generation-timeout
warn  - Restarted collecting page data for /_app because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds

> Build error occurred
Error: Collecting page data for [object Object] is still timing out after 2 attempts. See more info here https://nextjs.org/docs/messages/page-data-collection-timeout
    at onRestart (D:\meshery\ui\node_modules\next\dist\build\index.js:594:35)
    at Worker.isPageStatic (D:\meshery\ui\node_modules\next\dist\lib\worker.js:48:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Span.traceAsyncFn (D:\meshery\ui\node_modules\next\dist\trace\trace.js:79:20)
    at async D:\meshery\ui\node_modules\next\dist\build\index.js:706:52
    at async Span.traceAsyncFn (D:\meshery\ui\node_modules\next\dist\trace\trace.js:79:20)
    at async Promise.all (index 3)
    at async D:\meshery\ui\node_modules\next\dist\build\index.js:653:17
    at async Span.traceAsyncFn (D:\meshery\ui\node_modules\next\dist\trace\trace.js:79:20)
    at async D:\meshery\ui\node_modules\next\dist\build\index.js:618:170
cd provider-ui; npm run lint:fix && npm run build && npm run export; cd ..

> provider-ui@1.0.0 lint:fix
> next lint --fix


./components/Provider.js
80:6  Warning: React Hook useEffect has a missing dependency: 'loadProvidersFromServer'. Either include it or remove the dependency array.  react-hooks/exhaustive-deps

info  - Need to disable some ESLint rules? Learn more here: https://nextjs.org/docs/basic-features/eslint#disabling-rules

> provider-ui@1.0.0 build
> npm run clean && next build


> provider-ui@1.0.0 clean
> rm -rf .next,out

   Skipping linting
 ✓ Checking validity of types    
   Disabled SWC as replacement for Babel because of custom Babel configuration ".babelrc" https://nextjs.org/docs/messages/swc-disabled
 ✓ Creating an optimized production build    
 ✓ Compiled successfully
 ✓ Collecting page data    
 ✓ Generating static pages (5/5)
 ✓ Collecting build traces    
 ✓ Finalizing page optimization

Route (pages)                              Size     First Load JS
┌ ○ / (3705 ms)                            33.1 kB         162 kB
├   /_app                                  0 B             119 kB
├ ○ /404                                   1.45 kB         120 kB
├ λ /api/__coverage__                      0 B             119 kB
├ ○ /auth/login (3196 ms)                  1.95 kB         131 kB
└ ○ /auth/redirect (2189 ms)               938 B           120 kB
+ First Load JS shared by all              119 kB
  ├ chunks/framework-fae63b21a27d6472.js   45.3 kB
  ├ chunks/main-33ea238f2ed7653a.js        39.6 kB
  ├ chunks/pages/_app-9512724dff6c82df.js  32.2 kB
  └ chunks/webpack-19d1715f0b38c784.js     1.77 kB

λ  (Server)  server-side renders at runtime (uses getInitialProps or getServerSideProps)
○  (Static)  automatically rendered as static HTML (uses no initial props)


> provider-ui@1.0.0 export
> next export

 ⚠ "next export" is deprecated in favor of "output: export" in next.config.js https://nextjs.org/docs/advanced-features/static-html-export
   using build directory: D:\meshery\provider-ui\.next
   Copying "static build" directory
 ⚠ Statically exporting a Next.js application via `next export` disables API routes and middleware.
This command is meant for static-only hosts, and is not necessary to make your application static.
Pages in your application without server-side data dependencies will be automatically statically exported by `next build`, including pages powered by `getStaticProps`.
Learn more: https://nextjs.org/docs/messages/api-routes-static-export
   Copying "public" directory
   Launching 11 workers
 ✓ Exporting (5/5)
Export successful. Files written to D:\meshery\provider-ui\out
  1. While running make ui/server:
make ui-server
cd ui; npm run build && npm run export; cd ..

> meshery-ui@1.0.0 build
> npm run clean && cross-env next build


> meshery-ui@1.0.0 clean
> rm -rf .next,out

info  - Linting and checking validity of types  
info  - Disabled SWC as replacement for Babel because of custom Babel configuration ".babelrc" https://nextjs.org/docs/messages/swc-disabled
info  - `compiler` options in `next.config.js` will be ignored while using Babel https://nextjs.org/docs/messages/ignored-compiler-options
Browserslist: caniuse-lite is outdated. Please run:
  npx browserslist@latest --update-db
  Why you should do it regularly: https://github.com/browserslist/browserslist#browsers-data-updating
info  - Creating an optimized production build  
info  - Compiled successfully
warn  - Restarted collecting page data for /_app because it took more than 60 seconds
warn  - See more info here https://nextjs.org/docs/messages/static-page-generation-timeout
warn  - Restarted collecting page data for /_app because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds
warn  - Restarted collecting page data for [object Object] because it took more than 60 seconds

> Build error occurred
Error: Collecting page data for [object Object] is still timing out after 2 attempts. See more info here https://nextjs.org/docs/messages/page-data-collection-timeout
    at onRestart (D:\meshery\ui\node_modules\next\dist\build\index.js:594:35)
    at Worker.isPageStatic (D:\meshery\ui\node_modules\next\dist\lib\worker.js:48:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Span.traceAsyncFn (D:\meshery\ui\node_modules\next\dist\trace\trace.js:79:20)
    at async D:\meshery\ui\node_modules\next\dist\build\index.js:706:52
    at async Span.traceAsyncFn (D:\meshery\ui\node_modules\next\dist\trace\trace.js:79:20)
    at async Promise.all (index 3)
    at async D:\meshery\ui\node_modules\next\dist\build\index.js:653:17
    at async Span.traceAsyncFn (D:\meshery\ui\node_modules\next\dist\trace\trace.js:79:20)
    at async D:\meshery\ui\node_modules\next\dist\build\index.js:618:170
cd provider-ui; npm run build && npm run export; cd ..

> provider-ui@1.0.0 build
> npm run clean && next build


> provider-ui@1.0.0 clean
> rm -rf .next,out

   Skipping linting
 ✓ Checking validity of types
   Disabled SWC as replacement for Babel because of custom Babel configuration ".babelrc" https://nextjs.org/docs/messages/swc-disabled
 ✓ Creating an optimized production build
 ✓ Compiled successfully
 ✓ Collecting page data
 ✓ Generating static pages (5/5)
 ✓ Collecting build traces
 ✓ Finalizing page optimization

Route (pages)                              Size     First Load JS
┌ ○ / (3810 ms)                            33.1 kB         162 kB
├   /_app                                  0 B             119 kB
├ ○ /404                                   1.45 kB         120 kB
├ λ /api/__coverage__                      0 B             119 kB
├ ○ /auth/login (3226 ms)                  1.95 kB         131 kB
└ ○ /auth/redirect (2200 ms)               938 B           120 kB
+ First Load JS shared by all              119 kB
  ├ chunks/framework-fae63b21a27d6472.js   45.3 kB
  ├ chunks/main-33ea238f2ed7653a.js        39.6 kB
  ├ chunks/pages/_app-9512724dff6c82df.js  32.2 kB
  └ chunks/webpack-19d1715f0b38c784.js     1.77 kB

λ  (Server)  server-side renders at runtime (uses getInitialProps or getServerSideProps)
○  (Static)  automatically rendered as static HTML (uses no initial props)


> provider-ui@1.0.0 export
> next export

 ⚠ "next export" is deprecated in favor of "output: export" in next.config.js https://nextjs.org/docs/advanced-features/static-html-export
   using build directory: D:\meshery\provider-ui\.next
   Copying "static build" directory
 ⚠ Statically exporting a Next.js application via `next export` disables API routes and middleware.
This command is meant for static-only hosts, and is not necessary to make your application static.
Pages in your application without server-side data dependencies will be automatically statically exported by `next build`, including pages powered by `getStaticProps`.
Learn more: https://nextjs.org/docs/messages/api-routes-static-export
   Copying "public" directory
   Launching 11 workers   
 ✓ Exporting (5/5) 
Export successful. Files written to D:\meshery\provider-ui\out
Dependency missing: go1.21. Ensure 'go1.21.x' is installed and available in your 'PATH'
GOVERSION:  1.21
INSTALLED_GO_VERSION:  go version go1.22.4 windows/amd64
cd server; cd cmd; go mod tidy; \
BUILD="v0.7.125" \
PROVIDER_BASE_URLS="https://meshery.layer5.io" \
PORT=9081 \
DEBUG=true \
APP_PATH="./apps.json" \
KEYS_PATH="../../server/permissions/keys.csv" \
go run main.go error.go;

After this - go run main.go error.go, nothing is happening.

Are you building from within WSL2? If not, I recommend following these contributing instructions to do so.

Hey! This happened to me as well. You have to increase the memory space of your npm at default it is around 2 gb or less, i increased it to 4 gb then it worked. If you don’t want to change your default setting, then i will suggest you to set up this on gitpod i use gitpod. Hope this help!

@Lee , currently I’m not doing it in WSL2, but I’ll try doing this within WSL2 as well :+1:
Also, @Anuj , for increasing the memory space, do I’ve to do it like this?

The link you shared will also work but this is the simplest i have ever found
first check your current memory limit simply copy paste this in your terminal if it is below 4096 then server won’t work

node -e "console.log(v8.getHeapStatistics().heap_size_limit / 1024 / 1024 + ' MB')"

use this command to increase your memory space

node --max-old-space-size=4096
and now check again your memory limit it should be 4096. Then run the server it will work now.

But in case it still not works then replace 4096 with 8200 it will alot you 8 GB
Only do this if you have 12 GB ram in your system otherwise increase the memory limit in Gitpod as much you want .

Hope this helps !
Thanks

@Anuj , thanks for your response, on my system, when I run this command - node -e "console.log(v8.getHeapStatistics().heap_size_limit / 1024 / 1024 + ' MB')", it’s showing that I’ve 4144 MB.

Then increase it to 8 Gb then it should work, try to do these steps in Gitpod. As windows don’t allow more than 6 Gb to terminal ( at least in my case)