# Unable to Install node dependencies for Browser Library

**URL:** <https://forum.robotframework.org/t/unable-to-install-node-dependencies-for-browser-library/8252>\
**Category:** Browser\
**Created:** [8 January 2025 12:13 UTC](https://forum.robotframework.org/t/unable-to-install-node-dependencies-for-browser-library/8252 "2025-01-08T12:13:55Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Atla](https://avatars.discourse-cdn.com/v4/letter/a/a5b964/32.png) [@Atla](https://forum.robotframework.org/u/Atla)\
**Post date:** [8 January 2025 12:13 UTC](https://forum.robotframework.org/t/unable-to-install-node-dependencies-for-browser-library/8252/1 "2025-01-08T12:13:55Z")

</div>

I’m a complete newbie to Robot Framework and wanted to download the Browser Library to get started and try out some browser test automation.

But whenever I try to run rfbrowser init, it gives me an error message.  
At the top it says:  
_“npm error Exit handler never called!”_

In the middle it says:  
_"Installation directory `C:\Users\xxxxx\AppData\Local\Programs\Python\Python313\Lib\site-packages\Browser\wrapper` does not contain the required files for. unknown reason. Investigate the npm output and fix possible problems._  
_Printing contents:"_  
Followed by a big list of the wrapper directory.

At the end, I get a “Traceback” with error-Lines similar to syntax-mistakes in any IDE, with the final error message being:  
_“RuntimeError: Problem installing node dependencies.Node process returned with exit status 1”_

I assume it has something to do with my workplace wifi or security network, however I couldn’t find any fix online that worked for my issue. (Like downgrading Node/nmp, disabling SSL-Strict mode or reinstalling the robotframework-browser.)  
Is there any way to fix this?

---

<div class="post-metadata">

**Author:** ![rasjani](https://avatars.discourse-cdn.com/v4/letter/r/858c86/32.png) [@rasjani](https://forum.robotframework.org/u/rasjani)\
**Post date:** [8 January 2025 12:36 UTC](https://forum.robotframework.org/t/unable-to-install-node-dependencies-for-browser-library/8252/2 "2025-01-08T12:36:21Z")

</div>

how about copy pasting the whole output of your rfbrowser init execution. Really hard to speculate without seeing what the actual error is.

---

<div class="post-metadata">

**Author:** ![Atla](https://avatars.discourse-cdn.com/v4/letter/a/a5b964/32.png) [@Atla](https://forum.robotframework.org/u/Atla)\
**Post date:** [8 January 2025 12:54 UTC](https://forum.robotframework.org/t/unable-to-install-node-dependencies-for-browser-library/8252/3 "2025-01-08T12:54:36Z")

</div>

Fair, my bad.  
Here is the entire output (|at| is supposed to be an @-Symbol):

# "\*O:\>rfbrowser init

Installing node dependencies…  
Installing rfbrowser node dependencies at C:\Users\xxxxx\AppData\Local\Programs\Python\Python313\Lib\site-packages\Browser\wrapper  
npm warn config production Use `--omit=dev` instead.  
npm error Exit handler never called!  
npm error This is an error with npm itself. Please report this error at:  
npm error [https://github.com/npm/cli/issues](https://github.com/npm/cli/issues)  
npm error A complete log of this run can be found in: C:\Users\xxxxxx\AppData\Local\npm-cache\_logs\2025-01-08T11\_54\_47\_682Z-debug-0.log

Installing browser binaries to C:\Users\xxxxxx\AppData\Local\Programs\Python\Python313\Lib\site-packages\Browser\wrapper  
npx --quiet playwright install  
npm error code ETIMEDOUT  
npm error errno ETIMEDOUT  
npm error network request to [https://registry.npmjs.org/playwright](https://registry.npmjs.org/playwright) failed, reason:  
npm error network This is a problem related to network connectivity.  
npm error network In most cases you are behind a proxy or have bad network settings.  
npm error network  
npm error network If you are behind a proxy, please make sure that the  
npm error network ‘proxy’ config is set properly. See: ‘npm help config’  
npm error A complete log of this run can be found in: C:\Users\xxxxxxx\AppData\Local\npm-cache\_logs\2025-01-08T11\_57\_12\_335Z-debug-0.log

# ====================================================================== Traceback (most recent call last): File “C:\Users\xxxxx\AppData\Local\Programs\Python\Python313\Lib\site-packages\Browser\entry\__main_\_.py”, line 481, in init _rfbrowser\_init(skip\_browsers, silent\_mode, with\_deps, browser) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\xxxxxx\AppData\Local\Programs\Python\Python313\Lib\site-packages\Browser\entry\_main_.py", line 294, in \_rfbrowser\_init _process\_poller(process, silent\_mode)~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\xxxxx\AppData\Local\Programs\Python\Python313\Lib\site-packages\Browser\entry\_main_.py", line 108, in \_process\_poller raise RuntimeError( …\<2 lines\>… ) RuntimeError: Problem installing node dependencies.Node process returned with exit status 1

# Used Python is: C:\Users\xxxxxx\AppData\Local\Programs\Python\Python313\python.exe Version: 3.13.1

# pip freeze output: click==8.1.8 colorama==0.4.6 grpcio==1.68.1 grpcio-tools==1.68.1 natsort==8.4.0 overrides==7.7.0 protobuf==5.29.2 robotframework==7.1.1 robotframework-assertion-engine==3.0.3 robotframework-browser==19.1.2 robotframework-pythonlibcore==4.4.1 seedir==0.5.0 setuptools==75.7.0 wrapt==1.17.0

# npm version is:n 10.8.2

# Installation directory `C:\Users\xxxxxx\AppData\Local\Programs\Python\Python313\Lib\site-packages\Browser\wrapper` does not contain the required files for. unknown reason. Investigate the npm output and fix possible problems. Printing contents: wrapper/ index.js node\_modules/ |at| babel/ code-frame/ helper-validator-identifier/ highlight/ node\_modules/ |at| cspotcode/ source-map-support/ |at| esbuild/ aix-ppc64/ android-arm/ android-arm64/ android-x64/ darwin-arm64/ darwin-x64/ freebsd-arm64/ freebsd-x64/ linux-arm/ linux-arm64/ linux-ia32/ linux-loong64/ linux-mips64el/ linux-ppc64/ linux-riscv64/ linux-s390x/ linux-x64/ netbsd-x64/ openbsd-arm64/ openbsd-x64/ sunos-x64/ win32-arm64/ win32-ia32/ win32-x64/ |at| eslint/ config-array/ node\_modules/ core/ eslintrc/ node\_modules/ js/ object-schema/ plugin-kit/ |at| eslint-community/ eslint-utils/ regexpp/ |at| grpc/ grpc-js/ proto-loader/ |at| humanfs/ core/ node/ node\_modules/ |at| humanwhocodes/ module-importer/ retry/ |at| jridgewell/ gen-mapping/ node\_modules/ resolve-uri/ set-array/ source-map/ node\_modules/ sourcemap-codec/ trace-mapping/ |at| js-sdsl/ ordered-map/ |at| mapbox/ node-pre-gyp/ |at| medv/ finder/ |at| nodelib/ fs.scandir/ fs.stat/ fs.walk/ |at| pkgr/ core/ |at| protobufjs/ aspromise/ base64/ codegen/ eventemitter/ fetch/ float/ inquire/ path/ pool/ utf8/ |at| tsconfig/ node10/ node12/ node14/ node16/ |at| types/ body-parser/ connect/ cookie/ estree/ express/ express-serve-static-core/ history/ http-errors/ json-schema/ mime/ node/ prop-types/ qs/ range-parser/ react/ react-dom/ react-router/ react-router-dom/ send/ serve-static/ strip-comments/ uuid/ |at| typescript-eslint/ eslint-plugin/ parser/ scope-manager/ type-utils/ types/ typescript-estree/ utils/ visitor-keys/ node\_modules/ |at| webassemblyjs/ ast/ floating-point-hex-parser/ helper-api-error/ helper-buffer/ helper-numbers/ helper-wasm-bytecode/ helper-wasm-section/ ieee754/ leb128/ utf8/ wasm-edit/ wasm-gen/ wasm-opt/ wasm-parser/ wast-printer/ |at| xtuc/ ieee754/ long/ abbrev/ accepts/ acorn/ acorn-import-attributes/ acorn-jsx/ acorn-loose/ acorn-walk/ agent-base/ ajv/ ajv-keywords/ ansi-escapes/ ansi-regex/ ansi-styles/ aproba/ are-we-there-yet/ arg/ argparse/ array-flatten/ atomic-sleep/ balanced-match/ body-parser/ node\_modules/ debug/ media-typer/ mime-db/ mime-types/ ms/ type-is/ brace-expansion/ braces/ browserslist/ buffer-from/ builtin-modules/ bytes/ call-bind/ callsites/ caniuse-lite/ chalk/ chownr/ chrome-trace-event/ cli-cursor/ cli-truncate/ cliui/ node\_modules/ emoji-regex/ is-fullwidth-code-point/ string-width/ wrap-ansi/ clsx/ color-convert/ color-name/ color-support/ colorette/ commander/ concat-map/ console-control-strings/ console-grid/ content-disposition/ content-type/ cookie/ cookie-signature/ create-require/ cross-spawn/ csstype/ debug/ deep-is/ define-data-property/ delegates/ depd/ destroy/ detect-libc/ diff/ ee-first/ eight-colors/ electron-to-chromium/ emoji-regex/ encodeurl/ enhanced-resolve/ environment/ es-define-property/ es-errors/ es-module-lexer/ esbuild/ esbuild-node-externals/ escalade/ escape-html/ escape-string-regexp/ eslint/ node\_modules/ brace-expansion/ eslint-visitor-keys/ minimatch/ eslint-config-prettier/ eslint-plugin-prettier/ eslint-plugin-sort-imports-es6-autofix/ eslint-scope/ eslint-visitor-keys/ espree/ node\_modules/ eslint-visitor-keys/ esprima/ esquery/ esrecurse/ estraverse/ esutils/ etag/ eventemitter3/ events/ execa/ express/ node\_modules/ debug/ ms/ fast-deep-equal/ fast-diff/ fast-glob/ node\_modules/ glob-parent/ fast-json-stable-stringify/ fast-levenshtein/ fast-redact/ fastq/ file-entry-cache/ fill-range/ finalhandler/ node\_modules/ debug/ encodeurl/ ms/ find-up/ flat-cache/ flatted/ foreground-child/ forwarded/ fresh/ fs-minipass/ node\_modules/ minipass/ fs.realpath/ fsevents/ function-bind/ gauge/ node\_modules/ emoji-regex/ is-fullwidth-code-point/ signal-exit/ string-width/ get-caller-file/ get-east-asian-width/ get-intrinsic/ get-stream/ glob/ node\_modules/ brace-expansion/ minimatch/ glob-parent/ glob-to-regexp/ globals/ google-protobuf/ gopd/ graceful-fs/ graphemer/ grpc-tools/ grpc\_tools\_node\_protoc\_ts/ node\_modules/ google-protobuf/ handlebars/ has-flag/ has-property-descriptors/ has-proto/ has-symbols/ has-unicode/ hasown/ html-escaper/ http-errors/ https-proxy-agent/ human-signals/ husky/ iconv-lite/ ignore/ import-fresh/ imurmurhash/ inflight/ inherits/ ipaddr.js/ is-core-module/ is-extglob/ is-fullwidth-code-point/ is-glob/ is-number/ is-promise/ is-stream/ isexe/ istanbul-lib-coverage/ istanbul-lib-report/ node\_modules/ make-dir/ istanbul-reports/ jest-worker/ node\_modules/ supports-color/ js-tokens/ js-yaml/ json-buffer/ json-parse-even-better-errors/ json-schema-traverse/ json-stable-stringify-without-jsonify/ keyv/ levn/ lilconfig/ lint-staged/ node\_modules/ chalk/ listr2/ loader-runner/ locate-path/ lodash.camelcase/ lodash.merge/ log-update/ node\_modules/ ansi-regex/ ansi-styles/ is-fullwidth-code-point/ slice-ansi/ strip-ansi/ long/ loose-envify/ lz-utils/ make-dir/ node\_modules/ semver/ make-error/ media-typer/ merge-descriptors/ merge-stream/ merge2/ methods/ micromatch/ mime-db/ mime-types/ mimic-fn/ mimic-function/ minimatch/ minimist/ minipass/ minizlib/ node\_modules/ minipass/ mkdirp/ monocart-coverage-reports/ monocart-locator/ ms/ natural-compare/ negotiator/ neo-async/ node-fetch/ node-releases/ nopt/ npm-run-path/ node\_modules/ path-key/ npmlog/ object-assign/ object-inspect/ on-exit-leak-free/ on-finished/ once/ onetime/ optionator/ p-limit/ p-locate/ parent-module/ parseurl/ path-exists/ path-is-absolute/ path-key/ path-parse/ path-to-regexp/ picocolors/ picomatch/ pidtree/ pino/ pino-abstract-transport/ pino-std-serializers/ playwright/ playwright-core/ prelude-ls/ prettier/ prettier-linter-helpers/ process-warning/ prop-types/ protobufjs/ proxy-addr/ punycode/ qs/ queue-microtask/ quick-format-unescaped/ randombytes/ range-parser/ raw-body/ node\_modules/ iconv-lite/ react/ react-dom/ react-draggable/ react-is/ react-router/ node\_modules/ cookie/ react-router-dom/ readable-stream/ real-require/ require-directory/ resolve/ resolve-from/ restore-cursor/ node\_modules/ onetime/ reusify/ rfdc/ rimraf/ router/ run-parallel/ safe-buffer/ safe-stable-stringify/ safer-buffer/ scheduler/ schema-utils/ semver/ send/ node\_modules/ fresh/ mime-db/ mime-types/ serialize-javascript/ serve-static/ set-blocking/ set-cookie-parser/ set-function-length/ setprototypeof/ shebang-command/ shebang-regex/ side-channel/ signal-exit/ slice-ansi/ node\_modules/ ansi-styles/ sonic-boom/ source-map/ source-map-support/ split2/ sprintf-js/ statuses/ string-argv/ string-width/ node\_modules/ ansi-regex/ strip-ansi/ string\_decoder/ strip-ansi/ strip-comments/ strip-final-newline/ strip-json-comments/ supports-color/ supports-preserve-symlinks-flag/ synckit/ tapable/ tar/ terser/ node\_modules/ commander/ terser-webpack-plugin/ node\_modules/ |at| jridgewell/ thread-stream/ to-regex-range/ toidentifier/ tr46/ ts-api-utils/ ts-loader/ node\_modules/ source-map/ ts-node/ tslib/ tslint/ node\_modules/ ansi-styles/ argparse/ brace-expansion/ chalk/ color-convert/ color-name/ commander/ escape-string-regexp/ has-flag/ js-yaml/ minimatch/ mkdirp/ semver/ supports-color/ tslib/ tsutils/ node\_modules/ tslib/ turbo-stream/ type-check/ type-is/ typescript/ uglify-js/ undici-types/ unpipe/ update-browserslist-db/ uri-js/ util-deprecate/ utils-merge/ uuid/ v8-compile-cache-lib/ vary/ watchpack/ webidl-conversions/ webpack/ node\_modules/ eslint-scope/ estraverse/ mime-db/ mime-types/ webpack-sources/ whatwg-url/ which/ wide-align/ node\_modules/ emoji-regex/ is-fullwidth-code-point/ string-width/ word-wrap/ wordwrap/ wrap-ansi/ node\_modules/ ansi-regex/ ansi-styles/ strip-ansi/ wrappy/ y18n/ yallist/ yaml/ yargs/ node\_modules/ emoji-regex/ is-fullwidth-code-point/ string-width/ yargs-parser/ yn/ yocto-queue/ package-lock.json package.json static/ selector-finder.js

Traceback (most recent call last):  
File “”, line 198, in \_run\_module\_as\_main  
File “”, line 88, in _run\_code  
File "C:\Users\xxxxxx\AppData\Local\Programs\Python\Python313\Scripts\rfbrowser.exe\_main_.py", line 7, in   
sys.exit(cli())  
~~~^^  
File “C:\Users\xxxxxx\AppData\Local\Programs\Python\Python313\Lib\site-packages\click\core.py”, line 1161, in **call**  
return self.main(\*args, \*\*kwargs)  
~~~~~~~~~ ^^^^^^^^^^^^^^^^^  
File “C:\Users\xxxxx\AppData\Local\Programs\Python\Python313\Lib\site-packages\click\core.py”, line 1082, in main  
rv = self.invoke(ctx)  
File “C:\Users\xxxxx\AppData\Local\Programs\Python\Python313\Lib\site-packages\click\core.py”, line 1697, in invoke  
return \_process\_result(sub\_ctx.command.invoke(sub\_ctx))  
~~~~~~~~~~~~~~~~~~~~~~ ^^^^^^^^^  
File “C:\Users\xxxxxx\AppData\Local\Programs\Python\Python313\Lib\site-packages\click\core.py”, line 1443, in invoke  
return ctx.invoke(self.callback, \*_ctx.params)  
~~~~~~~~~~ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File “C:\Users\xxxxx\AppData\Local\Programs\Python\Python313\Lib\site-packages\click\core.py”, line 788, in invoke  
return callback(\*args, \*\*kwargs)  
File “C:\Users\xxxxx\AppData\Local\Programs\Python\Python313\Lib\site-packages\click\decorators.py”, line 33, in new\_func  
return f(get\_current\_context(), \*args, \*\*kwargs)  
File "C:\Users\xxxxxx\AppData\Local\Programs\Python\Python313\Lib\site-packages\Browser\entry\_main.py", line 489, in init  
raise err  
File "C:\Users\xxxxxxx\AppData\Local\Programs\Python\Python313\Lib\site-packages\Browser\entry\_main.py", line 481, in init  
 rfbrowser\_init(skip\_browsers, silent\_mode, with\_deps, browser)  
~~~~~~~~~~~~~~~ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Users\xxxxxx\AppData\Local\Programs\Python\Python313\Lib\site-packages\Browser\entry\_main.py", line 294, in \_rfbrowser\_init  
 process\_poller(process, silent\_mode)  
~~~~~~~~~~~~~~~ ^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Users\xxxxxxxx\AppData\Local\Programs\Python\Python313\Lib\site-packages\Browser\entry\_main.py", line 108, in \_process\_poller  
raise RuntimeError(  
…\<2 lines\>…  
)  
RuntimeError: Problem installing node dependencies.Node process returned with exit status 1"_

---

<div class="post-metadata">

**Author:** ![rasjani](https://avatars.discourse-cdn.com/v4/letter/r/858c86/32.png) [@rasjani](https://forum.robotframework.org/u/rasjani)\
**Post date:** [8 January 2025 13:38 UTC](https://forum.robotframework.org/t/unable-to-install-node-dependencies-for-browser-library/8252/4 "2025-01-08T13:38:19Z")

</div>

> [@Atla](#):
>
> npm error network In most cases you are behind a proxy or have bad network settings.  
> npm error network  
> npm error network If you are behind a proxy, please make sure that the

Thats the error. NPM cannot connect to internet. This happens if npm doesn’t know about the possible http/https proxy settings.

See instructions here; [node.js - Is there a way to make npm install (the command) to work behind proxy? - Stack Overflow](https://stackoverflow.com/questions/7559648/is-there-a-way-to-make-npm-install-the-command-to-work-behind-proxy)

And the value you should use instead of `http://proxy_host:port` should be provided to you by your IT admin.

If there’s no proxy available, in order to make that work, change networks to something that allows internet access.
