Description
We use RocketChat (community) in connection with a LDAP directory.
In the past new users showed up in RocketChat after the first login but required
some manual steps (activate, assign roles).
Presently - at least since version 6.2.1 this is not working anymore. Instead we see errors
in the RocketChat logs like this one coming from the “LDAP Data Converter”:
TypeError: usersInRole.toArray(…).forEach is not a function at app/authentication/server/startup/index.js:198:31
See below for the complete log record. A quick look into GitHub suggest that this might be connected to an attempt to inform the admin users about a new user. So I tried to create the user manually on the GUI. There I have seen a similar message but nothing in the server-side logs. Also I had a look at the representation of the admin users in mongodb but failed to spot anything fancy.
Any ideas what may be wrong?
Server Setup Information
- Version of Rocket.Chat Server: 6.2.2
- Operating System: Debian Linux 11 (stable, newest patches)
- Deployment Method: tar
- Number of Running Instances: 1
- DB Replicaset Oplog: ?
- NodeJS Version: 14.21.3
- MongoDB Version: 5.0.14
- Proxy: Apache behind firewall behind Reverse Proxy
- Firewalls involved: yes
Any additional Information
Full log entry:
May 24 15:08:29 rocketchat rocketchat[157647]: {"level":50,"time":"2023-05-24T13:08:29.354Z","pid":157647,"hostname":"rocketchat","name":"LDAP Data Converter","err":{"type":"TypeError","message":"usersInRole.toArray(...).forEach is not a function","stack":"TypeError: usersInRole.toArray(...).forEach is not a function\n at app/authentication/server/startup/index.js:198:31\n at /data/rocketchat/6.2.2/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/fiber_pool.js:43:40\n => awaited here:\n at Function.Promise.await (/data/rocketchat/6.2.2/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js:56:12)\n at AccountsServer._onCreateUserHook (app/authentication/server/startup/index.js:230:17)\n at AccountsServer.insertUserDoc (packages/accounts-base/accounts_server.js:1179:23)\n at app/authentication/server/startup/index.js:265:28\n at /data/rocketchat/6.2.2/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/fiber_pool.js:43:40\n => awaited here:\n at Function.Promise.await (/data/rocketchat/6.2.2/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js:56:12)\n at AccountsServer.Accounts.insertUserDoc (app/authentication/server/startup/index.js:321:17)\n at AccountsServer._createUserCheckingDuplicates (packages/accounts-base/accounts_server.js:1473:25)\n at packages/accounts-password/password_server.js:949:19\n at /data/rocketchat/6.2.2/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/fiber_pool.js:43:40\n => awaited here:\n at Function.Promise.await (/data/rocketchat/6.2.2/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js:56:12)\n at app/importer/server/classes/ImportDataConverter.ts:284:40\n at /data/rocketchat/6.2.2/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/fiber_pool.js:43:40\n => awaited here:\n at Function.Promise.await (/data/rocketchat/6.2.2/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js:56:12)\n at app/importer/server/classes/ImportDataConverter.ts:362:18\n at /data/rocketchat/6.2.2/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/fiber_pool.js:43:40"},"msg":"usersInRole.toArray(...).forEach is not a function"}