Skip to content

Upgrade form 3.x to 4.x

Uncategorized
7 2 6
  • Hi!
    I am facing an issue during upgrading NodeBB from version 3 to 4.
    During upgrade I am getting: error: uncaughtException: Cannot find module "resvg-js-freebsd-x64"

    It seems that something is wrong - I have added manually this "missing" package to package.json, and after the "nodebb upgrade" command, my changes are overwritten (the added package is deleted).

    Even if I put this package directly to node_modules same result...

    Thanks in advance.

  • Hi!
    I am facing an issue during upgrading NodeBB from version 3 to 4.
    During upgrade I am getting: error: uncaughtException: Cannot find module "resvg-js-freebsd-x64"

    It seems that something is wrong - I have added manually this "missing" package to package.json, and after the "nodebb upgrade" command, my changes are overwritten (the added package is deleted).

    Even if I put this package directly to node_modules same result...

    Thanks in advance.

    What does running npm ls resvg-js-freebsd-x64 show? We don't use this dependency directly so it might be coming from a plugin.

  • support@community.nodebb.orgS support@community.nodebb.org shared this topic
  • baris
    npm ls resvg-js-freebsd-x64
    nodebb@4.4.4 /usr/home/hermes/domains/.../public_nodejs
    └── (empty)

  • Do you get a stacktrace of this crash when you run the upgrade? What plugins are active on your forum? You can run ./nodebb plugins to find out.

  • I am getting:

    <~/domains/.../public_nodejs>$ ./nodebb plugins
    Embedded Dart Sass couldn't find the embedded compiler executable. Please make sure the optional dependency sass-embedded-freebsd-x64 is installed in node_modules.
    2025-07-04T12:41:46.233Z [4567/13334] - error: uncaughtException: Cannot find module '@resvg/resvg-js-freebsd-x64'
    Require stack:
    - /usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/js-binding.js
    - /usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/categories/icon.js
    - /usr/home/hermes/domains/.../public_nodejs/src/categories/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/privileges/helpers.js
    - /usr/home/hermes/domains/.../public_nodejs/src/privileges/global.js
    - /usr/home/hermes/domains/.../public_nodejs/src/privileges/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/groups/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/user/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/plugins/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/cli/manage.js
    - /usr/home/hermes/domains/.../public_nodejs/src/cli/index.js
    - /usr/home/hermes/domains/.../public_nodejs/nodebb
    Error: Cannot find module '@resvg/resvg-js-freebsd-x64'
    Require stack:
    - /usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/js-binding.js
    - /usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/categories/icon.js
    - /usr/home/hermes/domains/.../public_nodejs/src/categories/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/privileges/helpers.js
    - /usr/home/hermes/domains/.../public_nodejs/src/privileges/global.js
    - /usr/home/hermes/domains/.../public_nodejs/src/privileges/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/groups/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/user/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/plugins/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/cli/manage.js
    - /usr/home/hermes/domains/.../public_nodejs/src/cli/index.js
    - /usr/home/hermes/domains/.../public_nodejs/nodebb
        at Function._resolveFilename (node:internal/modules/cjs/loader:1405:15)
        at defaultResolveImpl (node:internal/modules/cjs/loader:1061:19)
        at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1066:22)
        at Function._load (node:internal/modules/cjs/loader:1215:37)
        at TracingChannel.traceSync (node:diagnostics_channel:322:14)
        at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
        at Module.require (node:internal/modules/cjs/loader:1491:12)
        at require (node:internal/modules/helpers:135:16)
        at Object. (/usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/js-binding.js:1:2977)
        at Module._compile (node:internal/modules/cjs/loader:1734:14) {"date":"Fri Jul 04 2025 14:41:46 GMT+0200 (czas środkowoeuropejski letni)","error":{"code":"MODULE_NOT_FOUND","requireStack":["/usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/js-binding.js","/usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/index.js","/usr/home/hermes/domains/.../public_nodejs/src/categories/icon.js","/usr/home/hermes/domains/.../public_nodejs/src/categories/index.js","/usr/home/hermes/domains/.../public_nodejs/src/privileges/helpers.js","/usr/home/hermes/domains/.../public_nodejs/src/privileges/global.js","/usr/home/hermes/domains/.../public_nodejs/src/privileges/index.js","/usr/home/hermes/domains/.../public_nodejs/src/groups/index.js","/usr/home/hermes/domains/.../public_nodejs/src/user/index.js","/usr/home/hermes/domains/.../public_nodejs/src/plugins/index.js","/usr/home/hermes/domains/.../public_nodejs/src/cli/manage.js","/usr/home/hermes/domains/.../public_nodejs/src/cli/index.js","/usr/home/hermes/domains/.../public_nodejs/nodebb"]},"exception":true,"os":{"loadavg":[10.333984375,11.052734375,10.55126953125],"uptime":11187527},"process":{"argv":["/usr/local/devil/node23/bin/node","/usr/home/hermes/domains/.../public_nodejs/nodebb","plugins"],"cwd":"/usr/home/hermes/domains/.../public_nodejs","execPath":"/usr/local/devil/node23/bin/node","gid":1000,"memoryUsage":{"arrayBuffers":882410,"external":4349695,"heapTotal":87642112,"heapUsed":67345744,"rss":211800064},"pid":13334,"uid":1537,"version":"v23.10.0"},"stack":"Error: Cannot find module '@resvg/resvg-js-freebsd-x64'\nRequire stack:\n- /usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/js-binding.js\n- /usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/index.js\n- /usr/home/hermes/domains/.../public_nodejs/src/categories/icon.js\n- /usr/home/hermes/domains/.../public_nodejs/src/categories/index.js\n- /usr/home/hermes/domains/.../public_nodejs/src/privileges/helpers.js\n- /usr/home/hermes/domains/.../public_nodejs/src/privileges/global.js\n- /usr/home/hermes/domains/.../public_nodejs/src/privileges/index.js\n- /usr/home/hermes/domains/.../public_nodejs/src/groups/index.js\n- /usr/home/hermes/domains/.../public_nodejs/src/user/index.js\n- /usr/home/hermes/domains/.../public_nodejs/src/plugins/index.js\n- /usr/home/hermes/domains/.../public_nodejs/src/cli/manage.js\n- /usr/home/hermes/domains/.../public_nodejs/src/cli/index.js\n- /usr/home/hermes/domains/.../public_nodejs/nodebb\n    at Function._resolveFilename (node:internal/modules/cjs/loader:1405:15)\n    at defaultResolveImpl (node:internal/modules/cjs/loader:1061:19)\n    at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1066:22)\n    at Function._load (node:internal/modules/cjs/loader:1215:37)\n    at TracingChannel.traceSync (node:diagnostics_channel:322:14)\n    at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)\n    at Module.require (node:internal/modules/cjs/loader:1491:12)\n    at require (node:internal/modules/helpers:135:16)\n    at Object. (/usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/js-binding.js:1:2977)\n    at Module._compile (node:internal/modules/cjs/loader:1734:14)","trace":[{"column":15,"file":"node:internal/modules/cjs/loader","function":"Function._resolveFilename","line":1405,"method":"_resolveFilename","native":false},{"column":19,"file":"node:internal/modules/cjs/loader","function":"defaultResolveImpl","line":1061,"method":null,"native":false},{"column":22,"file":"node:internal/modules/cjs/loader","function":"resolveForCJSWithHooks","line":1066,"method":null,"native":false},{"column":37,"file":"node:internal/modules/cjs/loader","function":"Function._load","line":1215,"method":"_load","native":false},{"column":14,"file":"node:diagnostics_channel","function":"TracingChannel.traceSync","line":322,"method":"traceSync","native":false},{"column":24,"file":"node:internal/modules/cjs/loader","function":"wrapModuleLoad","line":235,"method":null,"native":false},{"column":12,"file":"node:internal/modules/cjs/loader","function":"Module.require","line":1491,"method":"require","native":false},{"column":16,"file":"node:internal/modules/helpers","function":"require","line":135,"method":null,"native":false},{"column":2977,"file":"/usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/js-binding.js","function":null,"line":1,"method":null,"native":false},{"column":14,"file":"node:internal/modules/cjs/loader","function":"Module._compile","line":1734,"method":"_compile","native":false}]}
    [hermes@s3]:<~/domains/.../public_nodejs>$
    
    
  • What happens when you try npm i @resvg/resvg-js-freebsd-x64 and try it again? This sounds like a freebsd issue

  • Like I mentioned, I do not why @resvg/resvg-js-freebsd-x64 dissapears

    **$ npm i @resvg/resvg-js-freebsd-x64**
    npm warn deprecated osenv@0.1.5: This package is no longer supported.
    npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
    npm warn deprecated har-validator@5.1.5: this library is no longer supported
    npm warn deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
    npm warn deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
    npm warn deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
    npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
    npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
    npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
    npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
    npm warn deprecated glob@7.1.7: Glob versions prior to v9 are no longer supported
    npm warn deprecated glob@7.1.7: Glob versions prior to v9 are no longer supported
    npm warn deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
    npm warn deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
    
    added 546 packages, and audited 1462 packages in 8s
    
    253 packages are looking for funding
      run `npm fund` for details
    
    4 vulnerabilities (3 moderate, 1 high)
    
    Some issues need review, and may require choosing
    a different dependency.
    
    Run `npm audit` for details.
    **$ ./nodebb upgrade**
    
    Updating NodeBB...
    
    1. Updating package.json file with defaults...  OK
    
    2. Bringing base dependencies up to date...  started
    
    removed 1 package, and audited 916 packages in 3s
    
    113 packages are looking for funding
      run `npm fund` for details
    
    1 high severity vulnerability
    
    Some issues need review, and may require choosing
    a different dependency.
    
    Run `npm audit` for details.
    
    3. Checking installed plugins for updates...Checking installed plugins and themes for updates...   OK
    All packages up-to-date!
    
    4. Updating NodeBB data store schema...Error occurred during upgrade: Error: Cannot find module '@resvg/resvg-js-freebsd-x64'
    Require stack:
    - /usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/js-binding.js
    - /usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/categories/icon.js
    - /usr/home/hermes/domains/.../public_nodejs/src/categories/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/privileges/helpers.js
    - /usr/home/hermes/domains/.../public_nodejs/src/privileges/global.js
    - /usr/home/hermes/domains/.../public_nodejs/src/privileges/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/posts/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/plugins/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/groups/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/user/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/events.js
    - /usr/home/hermes/domains/.../public_nodejs/src/meta/themes.js
    - /usr/home/hermes/domains/.../public_nodejs/src/meta/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/cli/upgrade.js
    - /usr/home/hermes/domains/.../public_nodejs/src/cli/index.js
    - /usr/home/hermes/domains/.../public_nodejs/nodebb
        at Function._resolveFilename (node:internal/modules/cjs/loader:1405:15)
        at defaultResolveImpl (node:internal/modules/cjs/loader:1061:19)
        at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1066:22)
        at Function._load (node:internal/modules/cjs/loader:1215:37)
        at TracingChannel.traceSync (node:diagnostics_channel:322:14)
        at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
        at Module.require (node:internal/modules/cjs/loader:1491:12)
        at require (node:internal/modules/helpers:135:16)
        at Object. (/usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/js-binding.js:1:2977)
        at Module._compile (node:internal/modules/cjs/loader:1734:14)
    2025-07-04T13:33:16.087Z [4567/33883] - error: uncaughtException: Cannot find module '@resvg/resvg-js-freebsd-x64'
    Require stack:
    - /usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/js-binding.js
    - /usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/categories/icon.js
    - /usr/home/hermes/domains/.../public_nodejs/src/categories/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/privileges/helpers.js
    - /usr/home/hermes/domains/.../public_nodejs/src/privileges/global.js
    - /usr/home/hermes/domains/.../public_nodejs/src/privileges/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/posts/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/plugins/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/groups/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/user/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/events.js
    - /usr/home/hermes/domains/.../public_nodejs/src/meta/themes.js
    - /usr/home/hermes/domains/.../public_nodejs/src/meta/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/cli/upgrade.js
    - /usr/home/hermes/domains/.../public_nodejs/src/cli/index.js
    - /usr/home/hermes/domains/.../public_nodejs/nodebb
    Error: Cannot find module '@resvg/resvg-js-freebsd-x64'
    Require stack:
    - /usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/js-binding.js
    - /usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/categories/icon.js
    - /usr/home/hermes/domains/.../public_nodejs/src/categories/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/privileges/helpers.js
    - /usr/home/hermes/domains/.../public_nodejs/src/privileges/global.js
    - /usr/home/hermes/domains/.../public_nodejs/src/privileges/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/posts/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/plugins/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/groups/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/user/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/events.js
    - /usr/home/hermes/domains/.../public_nodejs/src/meta/themes.js
    - /usr/home/hermes/domains/.../public_nodejs/src/meta/index.js
    - /usr/home/hermes/domains/.../public_nodejs/src/cli/upgrade.js
    - /usr/home/hermes/domains/.../public_nodejs/src/cli/index.js
    - /usr/home/hermes/domains/.../public_nodejs/nodebb
        at Function._resolveFilename (node:internal/modules/cjs/loader:1405:15)
        at defaultResolveImpl (node:internal/modules/cjs/loader:1061:19)
        at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1066:22)
        at Function._load (node:internal/modules/cjs/loader:1215:37)
        at TracingChannel.traceSync (node:diagnostics_channel:322:14)
        at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
        at Module.require (node:internal/modules/cjs/loader:1491:12)
        at require (node:internal/modules/helpers:135:16)
        at Object. (/usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/js-binding.js:1:2977)
        at Module._compile (node:internal/modules/cjs/loader:1734:14) {"date":"Fri Jul 04 2025 15:33:16 GMT+0200 (czas środkowoeuropejski letni)","error":{"code":"MODULE_NOT_FOUND","requireStack":["/usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/js-binding.js","/usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/index.js","/usr/home/hermes/domains/.../public_nodejs/src/categories/icon.js","/usr/home/hermes/domains/.../public_nodejs/src/categories/index.js","/usr/home/hermes/domains/.../public_nodejs/src/privileges/helpers.js","/usr/home/hermes/domains/.../public_nodejs/src/privileges/global.js","/usr/home/hermes/domains/.../public_nodejs/src/privileges/index.js","/usr/home/hermes/domains/.../public_nodejs/src/posts/index.js","/usr/home/hermes/domains/.../public_nodejs/src/plugins/index.js","/usr/home/hermes/domains/.../public_nodejs/src/groups/index.js","/usr/home/hermes/domains/.../public_nodejs/src/user/index.js","/usr/home/hermes/domains/.../public_nodejs/src/events.js","/usr/home/hermes/domains/.../public_nodejs/src/meta/themes.js","/usr/home/hermes/domains/.../public_nodejs/src/meta/index.js","/usr/home/hermes/domains/.../public_nodejs/src/cli/upgrade.js","/usr/home/hermes/domains/.../public_nodejs/src/cli/index.js","/usr/home/hermes/domains/.../public_nodejs/nodebb"]},"exception":true,"os":{"loadavg":[9.13671875,9.947265625,10.07275390625],"uptime":11190617},"process":{"argv":["/usr/local/devil/node23/bin/node","/usr/home/hermes/domains/.../public_nodejs/nodebb","upgrade"],"cwd":"/usr/home/hermes/domains/.../public_nodejs","execPath":"/usr/local/devil/node23/bin/node","gid":1000,"memoryUsage":{"arrayBuffers":19195887,"external":23717600,"heapTotal":66514944,"heapUsed":41121032,"rss":144986112},"pid":33883,"uid":1537,"version":"v23.10.0"},"stack":"Error: Cannot find module '@resvg/resvg-js-freebsd-x64'\nRequire stack:\n- /usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/js-binding.js\n- /usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/index.js\n- /usr/home/hermes/domains/.../public_nodejs/src/categories/icon.js\n- /usr/home/hermes/domains/.../public_nodejs/src/categories/index.js\n- /usr/home/hermes/domains/.../public_nodejs/src/privileges/helpers.js\n- /usr/home/hermes/domains/.../public_nodejs/src/privileges/global.js\n- /usr/home/hermes/domains/.../public_nodejs/src/privileges/index.js\n- /usr/home/hermes/domains/.../public_nodejs/src/posts/index.js\n- /usr/home/hermes/domains/.../public_nodejs/src/plugins/index.js\n- /usr/home/hermes/domains/.../public_nodejs/src/groups/index.js\n- /usr/home/hermes/domains/.../public_nodejs/src/user/index.js\n- /usr/home/hermes/domains/.../public_nodejs/src/events.js\n- /usr/home/hermes/domains/.../public_nodejs/src/meta/themes.js\n- /usr/home/hermes/domains/.../public_nodejs/src/meta/index.js\n- /usr/home/hermes/domains/.../public_nodejs/src/cli/upgrade.js\n- /usr/home/hermes/domains/.../public_nodejs/src/cli/index.js\n- /usr/home/hermes/domains/.../public_nodejs/nodebb\n    at Function._resolveFilename (node:internal/modules/cjs/loader:1405:15)\n    at defaultResolveImpl (node:internal/modules/cjs/loader:1061:19)\n    at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1066:22)\n    at Function._load (node:internal/modules/cjs/loader:1215:37)\n    at TracingChannel.traceSync (node:diagnostics_channel:322:14)\n    at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)\n    at Module.require (node:internal/modules/cjs/loader:1491:12)\n    at require (node:internal/modules/helpers:135:16)\n    at Object. (/usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/js-binding.js:1:2977)\n    at Module._compile (node:internal/modules/cjs/loader:1734:14)","trace":[{"column":15,"file":"node:internal/modules/cjs/loader","function":"Function._resolveFilename","line":1405,"method":"_resolveFilename","native":false},{"column":19,"file":"node:internal/modules/cjs/loader","function":"defaultResolveImpl","line":1061,"method":null,"native":false},{"column":22,"file":"node:internal/modules/cjs/loader","function":"resolveForCJSWithHooks","line":1066,"method":null,"native":false},{"column":37,"file":"node:internal/modules/cjs/loader","function":"Function._load","line":1215,"method":"_load","native":false},{"column":14,"file":"node:diagnostics_channel","function":"TracingChannel.traceSync","line":322,"method":"traceSync","native":false},{"column":24,"file":"node:internal/modules/cjs/loader","function":"wrapModuleLoad","line":235,"method":null,"native":false},{"column":12,"file":"node:internal/modules/cjs/loader","function":"Module.require","line":1491,"method":"require","native":false},{"column":16,"file":"node:internal/modules/helpers","function":"require","line":135,"method":null,"native":false},{"column":2977,"file":"/usr/home/hermes/domains/.../public_nodejs/node_modules/@resvg/resvg-js/js-binding.js","function":null,"line":1,"method":null,"native":false},{"column":14,"file":"node:internal/modules/cjs/loader","function":"Module._compile","line":1734,"method":"_compile","native":false}]}
    [hermes@s3]:<~/domains/.../public_nodejs>$