Skip to content

ReferenceError: TextEncoder is not defined #1622

@etorres07

Description

@etorres07

What version were you using?

https://github.com/LearningLocker/learninglocker/releases/tag/v7.1.1

What steps can we follow to reproduce the behaviour?

Basically the steps in https://learninglocker.atlassian.net/wiki/spaces/DOCS/pages/622596/Installing (documentation update of Aug 04, 2022).

More specifically...

Using Ubuntu 18.04.6 LTS:

  1. curl -o- -L https://raw.githubusercontent.com/LearningLocker/deploy/master/deployll.sh > deployll.sh && bash deployll.sh
  2. sudo su learninglocker
  3. pm2 status displays that xAPI "errored" (see screenshot below of output table)
  4. pm2 logs xAPI include the following error for both 4|xAPI and 5|xAPI repeated times (e.g. even logging pm2 logs --lines 4000)
5|xAPI     | ReferenceError: TextEncoder is not defined
5|xAPI     |     at Object.<anonymous> (/usr/local/learninglocker/releases/ll-20221124-5fec948a823e372e740df521aa3684c8df1dcba7/xapi/node_modules/mongodb-connection-string-url/node_modules/whatwg-url/lib/encoding.js:2:21)
5|xAPI     |     at Module._compile (internal/modules/cjs/loader.js:778:30)
5|xAPI     |     at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
5|xAPI     |     at Module.load (internal/modules/cjs/loader.js:653:32)
5|xAPI     |     at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
5|xAPI     |     at Function.Module._load (internal/modules/cjs/loader.js:585:3)
5|xAPI     |     at Module.require (internal/modules/cjs/loader.js:692:17)
5|xAPI     |     at Module.Hook._require.Module.require (/usr/lib/node_modules/pm2/node_modules/require-in-the-middle/index.js:101:39)
5|xAPI     |     at require (internal/modules/cjs/helpers.js:25:18)
5|xAPI     |     at Object.<anonymous> (/usr/local/learninglocker/releases/ll-20221124-5fec948a823e372e740df521aa3684c8df1dcba7/xapi/node_modules/mongodb-connection-string-url/node_modules/whatwg-url/lib/url-state-machine.js:5:34)
5|xAPI     | 2022-11-25 10:07:48:095 - error: Failed Mongo connection: no primary found in replicaset or invalid replica set name
5|xAPI     | 2022-11-25 10:07:48:098 - error: Failed initial mongo connection: Too many retries

What is the actual behaviour?

Screenshot from 2022-11-25 10-45-36

What is the expected behavior?

The expected behavior is for all processes to start with an "online" status.

Is there any additional information that will help us replicate/understand the problem?

I did some digging and it seems to be related with node's version:
jsdom/whatwg-url#209
Automattic/mongoose#10638

The only thing that fixed it for me was:

  1. Following this suggestion https://stackoverflow.com/a/69287561/20588311
  2. Changing from the installed node version (10.24.1; i.e. the one that learning-locker installed during deployll.sh execution) to node 16.8.1.
  3. Running yarn

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions