Jupyter Lab Build fails in JupyterHub setup on ubuntu server with Nginx proxy

Hey everyone,

I’ve been setting up a JupyterHub platform on my vps, using nginx to make it available on the web, pretty much exactly following this guide (except for any conda parts) and everything has been working fine (e.g. different users running different notebooks using different venvs and such), until I tried to install an extension and then run jupyter lab build, which failed.

At first I tried fixing it with deleting all extensions, I also cleaned up some nodejs/npm/nvm mess (i.e. now everything is in order there), and deleted my entire setup and recreated it by now several times, but I still can’t build jupyter lab (it’s the first thing I trydoing after recreating the entire setup). I’ve pretty much read through every post concerning jupyter lab build fails, but none have solved my problem so far, which is why I’m here,…

First, the error message I get when simply running jupyter lab --watch,

[I 00:59:51.304 LabApp] JupyterLab extension loaded from /opt/jupyterlab/lib/python3.6/site-packages/jupyterlab
[I 00:59:51.305 LabApp] JupyterLab application directory is /opt/jupyterlab/share/jupyter/lab
[I 00:59:51.305 LabApp] Starting JupyterLab watch mode…
[I 00:59:53.911 LabApp] > node /opt/jupyterlab/lib/python3.6/site-packages/jupyterlab/staging/yarn.js run watch
yarn run v1.21.1
$ webpack --watch
/opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack-cli/bin/cli.js:93
throw err;
^

Error: Cannot find module ‘./_baseGetTag’
Require stack:

  • /opt/jupyterlab/share/jupyter/lab/staging/node_modules/lodash/isPlainObject.js
  • /opt/jupyterlab/share/jupyter/lab/staging/node_modules/pretty-error/lib/PrettyError.js
  • /opt/jupyterlab/share/jupyter/lab/staging/node_modules/html-webpack-plugin/lib/errors.js
  • /opt/jupyterlab/share/jupyter/lab/staging/node_modules/html-webpack-plugin/index.js
  • /opt/jupyterlab/share/jupyter/lab/staging/webpack.config.js
  • /opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack-cli/bin/utils/convert-argv.js
  • /opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack-cli/bin/cli.js
  • /opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack/bin/webpack.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object. (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/lodash/isPlainObject.js:1:80)
    at Module._compile (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/v8-compile-cache/v8-compile-cache.js:194:30)
    at Object.Module._extensions…js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object. (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/pretty-error/lib/PrettyError.js:6:17)
    at Module._compile (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/v8-compile-cache/v8-compile-cache.js:194:30)
    at Object.Module._extensions…js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object. (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/html-webpack-plugin/lib/errors.js:2:21)
    at Module._compile (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/v8-compile-cache/v8-compile-cache.js:194:30)
    at Object.Module._extensions…js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object. (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/html-webpack-plugin/index.js:11:21)
    at Module._compile (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/v8-compile-cache/v8-compile-cache.js:194:30)
    at Object.Module._extensions…js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14) {
    code: ‘MODULE_NOT_FOUND’,
    requireStack: [
    ‘/opt/jupyterlab/share/jupyter/lab/staging/node_modules/lodash/isPlainObject.js’,
    ‘/opt/jupyterlab/share/jupyter/lab/staging/node_modules/pretty-error/lib/PrettyError.js’,
    ‘/opt/jupyterlab/share/jupyter/lab/staging/node_modules/html-webpack-plugin/lib/errors.js’,
    ‘/opt/jupyterlab/share/jupyter/lab/staging/node_modules/html-webpack-plugin/index.js’,
    ‘/opt/jupyterlab/share/jupyter/lab/staging/webpack.config.js’,
    ‘/opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack-cli/bin/utils/convert-argv.js’,
    ‘/opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack-cli/bin/cli.js’,
    ‘/opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack/bin/webpack.js’
    ]
    }
    error Command failed with exit code 1.
    info Visit https ://yarnpkg.com/en/docs/cli/run for documentation about this command.

[I 00:59:51.304 LabApp] JupyterLab extension loaded from /opt/jupyterlab/lib/python3.6/site-packages/jupyterlab
[I 00:59:51.305 LabApp] JupyterLab application directory is /opt/jupyterlab/share/jupyter/lab
[I 00:59:51.305 LabApp] Starting JupyterLab watch mode…
[I 00:59:53.911 LabApp] > node /opt/jupyterlab/lib/python3.6/site-packages/jupyterlab/staging/yarn.js run watch
yarn run v1.21.1
$ webpack --watch
/opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack-cli/bin/cli.js:93
throw err;
^

Error: Cannot find module ‘./_baseGetTag’
Require stack:

  • /opt/jupyterlab/share/jupyter/lab/staging/node_modules/lodash/isPlainObject.js
  • /opt/jupyterlab/share/jupyter/lab/staging/node_modules/pretty-error/lib/PrettyError.js
  • /opt/jupyterlab/share/jupyter/lab/staging/node_modules/html-webpack-plugin/lib/errors.js
  • /opt/jupyterlab/share/jupyter/lab/staging/node_modules/html-webpack-plugin/index.js
  • /opt/jupyterlab/share/jupyter/lab/staging/webpack.config.js
  • /opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack-cli/bin/utils/convert-argv.js
  • /opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack-cli/bin/cli.js
  • /opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack/bin/webpack.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object. (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/lodash/isPlainObject.js:1:80)
    at Module._compile (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/v8-compile-cache/v8-compile-cache.js:194:30)
    at Object.Module._extensions…js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object. (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/pretty-error/lib/PrettyError.js:6:17)
    at Module._compile (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/v8-compile-cache/v8-compile-cache.js:194:30)
    at Object.Module._extensions…js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object. (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/html-webpack-plugin/lib/errors.js:2:21)
    at Module._compile (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/v8-compile-cache/v8-compile-cache.js:194:30)
    at Object.Module._extensions…js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object. (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/html-webpack-plugin/index.js:11:21)
    at Module._compile (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/v8-compile-cache/v8-compile-cache.js:194:30)
    at Object.Module._extensions…js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14) {
    code: ‘MODULE_NOT_FOUND’,
    requireStack: [
    ‘/opt/jupyterlab/share/jupyter/lab/staging/node_modules/lodash/isPlainObject.js’,
    ‘/opt/jupyterlab/share/jupyter/lab/staging/node_modules/pretty-error/lib/PrettyError.js’,
    ‘/opt/jupyterlab/share/jupyter/lab/staging/node_modules/html-webpack-plugin/lib/errors.js’,
    ‘/opt/jupyterlab/share/jupyter/lab/staging/node_modules/html-webpack-plugin/index.js’,
    ‘/opt/jupyterlab/share/jupyter/lab/staging/webpack.config.js’,
    ‘/opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack-cli/bin/utils/convert-argv.js’,
    ‘/opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack-cli/bin/cli.js’,
    ‘/opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack/bin/webpack.js’
    ]
    }
    error Command failed with exit code 1.
    info Visit https ://yarnpkg.com/en/docs/cli/run for documentation about this command.

and here is the complete error log from jupyter lab build (I’ve tried the variations of --minimize=False and --dev-build=False, and also sudoing and not sudoing it):

[LabBuildApp] Building in /opt/jupyterlab/share/jupyter/lab
[LabBuildApp] Node v14.15.1
[LabBuildApp] Yarn configuration loaded.
[LabBuildApp] Building jupyterlab assets (build:prod:minimize)
[LabBuildApp] > node /opt/jupyterlab/lib/python3.6/site-packages/jupyterlab/staging/yarn.js install --non-interactive
[LabBuildApp] yarn install v1.21.1
[1/5] Validating package.json…
[2/5] Resolving packages…
[3/5] Fetching packages…
info fsevents@2.1.3: The platform “linux” is incompatible with this module.
info “fsevents@2.1.3” is an optional dependency and failed compatibility check. Excluding it from installation.
info fsevents@1.2.13: The platform “linux” is incompatible with this module.
info “fsevents@1.2.13” is an optional dependency and failed compatibility check. Excluding it from installation.
[4/5] Linking dependencies…
warning " > @lumino/coreutils@1.5.3" has unmet peer dependency “crypto@1.0.1”.
[5/5] Building fresh packages…
Done in 11.20s.

[LabBuildApp] > node /opt/jupyterlab/lib/python3.6/site-packages/jupyterlab/staging/yarn.js yarn-deduplicate -s fewer --fail
[LabBuildApp] yarn run v1.21.1
$ /opt/jupyterlab/share/jupyter/lab/staging/node_modules/.bin/yarn-deduplicate -s fewer --fail
Done in 0.43s.

[LabBuildApp] > node /opt/jupyterlab/lib/python3.6/site-packages/jupyterlab/staging/yarn.js run build:prod:minimize
[LabBuildApp] yarn run v1.21.1
$ ensure-max-old-space webpack --config webpack.prod.minimize.config.js
/opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack-cli/bin/cli.js:93
throw err;
^

Error: Cannot find module ‘./_baseValues’
Require stack:

  • /opt/jupyterlab/share/jupyter/lab/staging/node_modules/lodash/values.js
  • /opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack-merge/lib/index.js
  • /opt/jupyterlab/share/jupyter/lab/staging/webpack.prod.minimize.config.js
  • /opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack-cli/bin/utils/convert-argv.js
  • /opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack-cli/bin/cli.js
  • /opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack/bin/webpack.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object. (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/lodash/values.js:1:80)
    at Module._compile (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/v8-compile-cache/v8-compile-cache.js:194:30)
    at Object.Module._extensions…js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object. (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack-merge/lib/index.js:3:16)
    at Module._compile (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/v8-compile-cache/v8-compile-cache.js:194:30)
    at Object.Module._extensions…js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object. (/opt/jupyterlab/share/jupyter/lab/staging/webpack.prod.minimize.config.js:3:15)
    at Module._compile (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/v8-compile-cache/v8-compile-cache.js:194:30)
    at Object.Module._extensions…js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at WEBPACK_OPTIONS (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack-cli/bin/utils/convert-argv.js:114:13)
    at requireConfig (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack-cli/bin/utils/convert-argv.js:116:6)
    at /opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack-cli/bin/utils/convert-argv.js:123:17
    at Array.forEach ()
    at module.exports (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack-cli/bin/utils/convert-argv.js:121:15) {
    code: ‘MODULE_NOT_FOUND’,
    requireStack: [
    ‘/opt/jupyterlab/share/jupyter/lab/staging/node_modules/lodash/values.js’,
    ‘/opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack-merge/lib/index.js’,
    ‘/opt/jupyterlab/share/jupyter/lab/staging/webpack.prod.minimize.config.js’,
    ‘/opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack-cli/bin/utils/convert-argv.js’,
    ‘/opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack-cli/bin/cli.js’,
    ‘/opt/jupyterlab/share/jupyter/lab/staging/node_modules/webpack/bin/webpack.js’
    ]
    }
    child_process.js:637
    throw err;
    ^

Error: Command failed: /opt/jupyterlab/share/jupyter/lab/staging/node_modules/.bin/webpack --config webpack.prod.minimize.config.js
at checkExecSyncError (child_process.js:616:11)
at Object.execFileSync (child_process.js:634:15)
at Object. (/opt/jupyterlab/share/jupyter/lab/staging/node_modules/@jupyterlab/buildutils/lib/ensure-max-old-space.js:38:17)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions…js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
at internal/main/run_main_module.js:17:47 {
status: 1,
signal: null,
output: [ null, null, null ],
pid: 25511,
stdout: null,
stderr: null
}
error Command failed with exit code 1.
info Visit https ://yarnpkg.com/en/docs/cli/run for documentation about this command.

[LabBuildApp] JupyterLab failed to build
[LabBuildApp] Traceback (most recent call last):

[LabBuildApp] File “/opt/jupyterlab/lib/python3.6/site-packages/jupyterlab/debuglog.py”, line 47, in debug_logging
yield

[LabBuildApp] File “/opt/jupyterlab/lib/python3.6/site-packages/jupyterlab/labapp.py”, line 138, in start
raise e

[LabBuildApp] File “/opt/jupyterlab/lib/python3.6/site-packages/jupyterlab/labapp.py”, line 135, in start
command=command, app_options=app_options)

[LabBuildApp] File “/opt/jupyterlab/lib/python3.6/site-packages/jupyterlab/commands.py”, line 460, in build
command=command, clean_staging=clean_staging)

[LabBuildApp] File “/opt/jupyterlab/lib/python3.6/site-packages/jupyterlab/commands.py”, line 661, in build
raise RuntimeError(msg)

[LabBuildApp] RuntimeError: JupyterLab failed to build

[LabBuildApp] Exiting application: JupyterLab

(The folders are /opt/jupyterlab/… and not /opt/jupyterhub/… because this is my n-th recreation, and I haven’t deleted the jupyterhub environment yet (the errors are all the same though…)

I’d be eternally grateful if someone could help me get these builds to complete! :slight_smile:

Kind Regards!