RocketChat / RocketChat/Rocket.Chat

Mongo 4 -5 upgrade errors - "Some indexes for collection could not be created"

Open
#31,876 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
46.1k
Forks
13.9k
Avg merge
3d 3h
Merged PRs (30d)
130

Description

After upgrade of Mongo DB from 4 to 5 I get errors in the logs. Full log below.

This is repeatable and has occurred on 3 different instances.

Steps to reproduce:

Upgrade Mongo DB from 4 to 5

Restart rocket with docker-compose

Expected behavior:

No errors

Actual behavior:

As per logs below

Server Setup Information:
  • Version of Rocket.Chat Server: 6.6.2 (but originally occurred on 6.5.x when I upgraded Mongo on one VM)
  • Operating System: CentOS 7
  • Deployment Method: rocket - with docker, mongo natively via rpms
  • Number of Running Instances: 1
  • MongoDB Version: 5.0.25

Deployment
Version
6.6.2
Apps Engine Version
1.41.0
Node Version
v14.21.3
Database Migration
304 (March 2, 2024 10:10 PM)
MongoDB
5.0.25 / wiredTiger (oplog Enabled)
Commit Details
HEAD: (44b682f6b)
Branch: HEAD
Release 6.6.2

Client Setup Information

NA

Additional context

3 rocket.chat servers all upgraded from prior versions - one from around 0.32 or possibly earlier!

Relevant logs:

Seems the same error but different collections depening on the server

Server 1

Some indexes for collection 'rocketchat_credential_tokens' could not be created:
	An equivalent index already exists with the same name but different options. Requested index: { v: 2, key: { expireAt: 1 }, name: "expireAt_1", sparse: true, expireAfterSeconds: 0 }, existing index: { v: 2, key: { expireAt: 1 }, name: "expireAt_1", sparse: 1, expireAfterSeconds: 0 }
(node:1) UnhandledPromiseRejectionWarning: MongoServerError: An equivalent index already exists with the same name but different options. Requested index: { v: 2, key: { expireAt: 1 }, name: "expireAt_1", sparse: true, expireAfterSeconds: 0 }, existing index: { v: 2, key: { expireAt: 1 }, name: "expireAt_1", sparse: 1, expireAfterSeconds: 0 }
    at Connection.onMessage (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connection.js:231:30)
    at MessageStream.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connection.js:61:60)
    at MessageStream.emit (events.js:400:28)
    at MessageStream.emit (domain.js:475:12)
    at processIncomingData (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:125:16)
    at MessageStream._write (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:33:9)
    at writeOrBuffer (internal/streams/writable.js:358:12)
    at MessageStream.Writable.write (internal/streams/writable.js:303:10)
    at Socket.ondata (internal/streams/readable.js:731:22)
    at Socket.emit (events.js:400:28)
    at Socket.emit (domain.js:475:12)
    at addChunk (internal/streams/readable.js:293:12)
    at readableAddChunk (internal/streams/readable.js:267:9)
    at Socket.Readable.push (internal/streams/readable.js:206:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:188:23)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:1) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Some indexes for collection 'rocketchat_message' could not be created:
	An equivalent index already exists with the same name but different options. Requested index: { v: 2, key: { pinnedBy._id: 1 }, name: "pinnedBy._id_1", sparse: true }, existing index: { v: 2, key: { pinnedBy._id: 1 }, name: "pinnedBy._id_1", sparse: 1 }
(node:1) UnhandledPromiseRejectionWarning: MongoServerError: An equivalent index already exists with the same name but different options. Requested index: { v: 2, key: { pinnedBy._id: 1 }, name: "pinnedBy._id_1", sparse: true }, existing index: { v: 2, key: { pinnedBy._id: 1 }, name: "pinnedBy._id_1", sparse: 1 }
    at Connection.onMessage (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connection.js:231:30)
    at MessageStream.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connection.js:61:60)
    at MessageStream.emit (events.js:400:28)
    at MessageStream.emit (domain.js:475:12)
    at processIncomingData (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:125:16)
    at MessageStream._write (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:33:9)
    at writeOrBuffer (internal/streams/writable.js:358:12)
    at MessageStream.Writable.write (internal/streams/writable.js:303:10)
    at Socket.ondata (internal/streams/readable.js:731:22)
    at Socket.emit (events.js:400:28)
    at Socket.emit (domain.js:475:12)
    at addChunk (internal/streams/readable.js:293:12)
    at readableAddChunk (internal/streams/readable.js:267:9)
    at Socket.Readable.push (internal/streams/readable.js:206:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:188:23)
(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 4)

Some indexes for collection 'rocketchat_subscription' could not be created:
	An equivalent index already exists with the same name but different options. Requested index: { v: 2, key: { desktopNotifications: 1 }, name: "desktopNotifications_1", sparse: true }, existing index: { v: 2, key: { desktopNotifications: 1 }, name: "desktopNotifications_1", sparse: 1 }
(node:1) UnhandledPromiseRejectionWarning: MongoServerError: An equivalent index already exists with the same name but different options. Requested index: { v: 2, key: { desktopNotifications: 1 }, name: "desktopNotifications_1", sparse: true }, existing index: { v: 2, key: { desktopNotifications: 1 }, name: "desktopNotifications_1", sparse: 1 }
    at Connection.onMessage (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connection.js:231:30)
    at MessageStream.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connection.js:61:60)
    at MessageStream.emit (events.js:400:28)
    at MessageStream.emit (domain.js:475:12)
    at processIncomingData (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:125:16)
    at MessageStream._write (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:33:9)
    at writeOrBuffer (internal/streams/writable.js:358:12)
    at MessageStream.Writable.write (internal/streams/writable.js:303:10)
    at Socket.ondata (internal/streams/readable.js:731:22)
    at Socket.emit (events.js:400:28)
    at Socket.emit (domain.js:475:12)
    at addChunk (internal/streams/readable.js:293:12)
    at readableAddChunk (internal/streams/readable.js:267:9)
    at Socket.Readable.push (internal/streams/readable.js:206:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:188:23)
(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 6)

Some indexes for collection 'rocketchat_uploads' could not be created:
	An equivalent index already exists with the same name but different options. Requested index: { v: 2, key: { rid: 1 }, name: "rid_1", sparse: true }, existing index: { v: 2, key: { rid: 1 }, name: "rid_1" }
(node:1) UnhandledPromiseRejectionWarning: MongoServerError: An equivalent index already exists with the same name but different options. Requested index: { v: 2, key: { rid: 1 }, name: "rid_1", sparse: true }, existing index: { v: 2, key: { rid: 1 }, name: "rid_1" }
    at Connection.onMessage (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connection.js:231:30)
    at MessageStream.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connection.js:61:60)
    at MessageStream.emit (events.js:400:28)
    at MessageStream.emit (domain.js:475:12)
    at processIncomingData (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:125:16)
    at MessageStream._write (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:33:9)
    at writeOrBuffer (internal/streams/writable.js:358:12)
    at MessageStream.Writable.write (internal/streams/writable.js:303:10)
    at Socket.ondata (internal/streams/readable.js:731:22)
    at Socket.emit (events.js:400:28)
    at Socket.emit (domain.js:475:12)
    at addChunk (internal/streams/readable.js:293:12)
    at readableAddChunk (internal/streams/readable.js:267:9)
    at Socket.Readable.push (internal/streams/readable.js:206:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:188:23)
(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 8)
(node:1) NOTE: We are formalizing our plans to enter AWS SDK for JavaScript (v2) into maintenance mode in 2023.

Please migrate your code to use AWS SDK for JavaScript (v3).
For more information, check the migration guide at https://a.co/7PzMCcy



{"level":40,"time":"2024-03-02T20:52:18.447Z","pid":1,"hostname":"quixote.hostdomain.com","name":"VoIPService","msg":"Voip is not enabled. Cant start the service"}
{"level":51,"time":"2024-03-02T20:52:18.498Z","pid":1,"hostname":"quixote.hostdomain.com","name":"Migrations","msg":"Not migrating, already at version 304"}
[2024-03-02T20:52:18.515Z] INFO  8458ff1b-9f2f-44c9-afe6-9db4216b17f1/BROKER: Moleculer v0.14.31 is starting...
[2024-03-02T20:52:18.516Z] INFO  8458ff1b-9f2f-44c9-afe6-9db4216b17f1/BROKER: Namespace: <not defined>
[2024-03-02T20:52:18.516Z] INFO  8458ff1b-9f2f-44c9-afe6-9db4216b17f1/BROKER: Node ID: 8458ff1b-9f2f-44c9-afe6-9db4216b17f1
[2024-03-02T20:52:18.519Z] INFO  8458ff1b-9f2f-44c9-afe6-9db4216b17f1/REGISTRY: Strategy: RoundRobinStrategy
[2024-03-02T20:52:18.520Z] INFO  8458ff1b-9f2f-44c9-afe6-9db4216b17f1/REGISTRY: Discoverer: LocalDiscoverer
[2024-03-02T20:52:18.522Z] INFO  8458ff1b-9f2f-44c9-afe6-9db4216b17f1/BROKER: Serializer: EJSONSerializer
[2024-03-02T20:52:18.544Z] INFO  8458ff1b-9f2f-44c9-afe6-9db4216b17f1/BROKER: Validator: FastestValidator
[2024-03-02T20:52:18.548Z] INFO  8458ff1b-9f2f-44c9-afe6-9db4216b17f1/BROKER: Registered 13 middleware(s).
[2024-03-02T20:52:18.551Z] INFO  8458ff1b-9f2f-44c9-afe6-9db4216b17f1/BROKER: Transporter: TcpTransporter
{"level":51,"time":"2024-03-02T20:52:18.599Z","pid":1,"hostname":"quixote.hostdomain.com","name":"DatabaseWatcher","msg":"Using change streams"}
[2024-03-02T20:52:18.640Z] INFO  8458ff1b-9f2f-44c9-afe6-9db4216b17f1/TRANSIT: Connecting to the transporter...
[2024-03-02T20:52:18.656Z] INFO  8458ff1b-9f2f-44c9-afe6-9db4216b17f1/TRANSPORTER: TCP server is listening on port 40923
[2024-03-02T20:52:18.658Z] INFO  8458ff1b-9f2f-44c9-afe6-9db4216b17f1/TRANSPORTER: UDP Discovery is disabled.
[2024-03-02T20:52:18.659Z] INFO  8458ff1b-9f2f-44c9-afe6-9db4216b17f1/TRANSPORTER: TCP Transporter started.
{"level":51,"time":"2024-03-02T20:52:18.894Z","pid":1,"hostname":"quixote.hostdomain.com","name":"License","msg":"License installed","version":"3.0","hash":"1Aw4siEw"}
(node:1) [MONGODB DRIVER] Warning: cursor.count is deprecated and will be removed in the next major version, please use `collection.estimatedDocumentCount` or `collection.countDocuments` instead 
[2024-03-02T20:52:19.232Z] INFO  8458ff1b-9f2f-44c9-afe6-9db4216b17f1/REGISTRY: '$node' service is registered.
[2024-03-02T20:52:19.235Z] INFO  8458ff1b-9f2f-44c9-afe6-9db4216b17f1/REGISTRY: 'matrix' service is registered.
[2024-03-02T20:52:19.237Z] INFO  8458ff1b-9f2f-44c9-afe6-9db4216b17f1/$NODE: Service '$node' started.
[2024-03-02T20:52:19.238Z] INFO  8458ff1b-9f2f-44c9-afe6-9db4216b17f1/MATRIX: Service 'matrix' started.
[2024-03-02T20:52:19.240Z] INFO  8458ff1b-9f2f-44c9-afe6-9db4216b17f1/BROKER: ✔ ServiceBroker with 2 service(s) started successfully in 654ms.
+---------------------------------------------------------+
|                      SERVER RUNNING                     |
+---------------------------------------------------------+
|                                                         |
|  Rocket.Chat Version: 6.6.2                             |
|       NodeJS Version: 14.21.3 - x64                     |
|      MongoDB Version: 5.0.25                            |
|       MongoDB Engine: wiredTiger                        |
|             Platform: linux                             |
|         Process Port: 3000                              |
|             Site URL: https://chat.rocket.com  |
|     ReplicaSet OpLog: Enabled                           |
|          Commit Hash: 44b682f6bc                        |
|        Commit Branch: HEAD                              |
|                                                         |
+---------------------------------------------------------+
{"level":51,"time":"2024-03-02T20:52:22.043Z","pid":1,"hostname":"quixote.hostdomain.com","name":"License","msg":"License installed","version":"3.0","hash":"VX8s-M2Q"}

Server 2

Some indexes for collection 'rocketchat_room' could not be created:
	An equivalent index already exists with the same name but different options. Requested index: { v: 2, key: { open: 1 }, name: "open_1", sparse: true }, existing index: { v: 2, key: { open: 1 }, name: "open_1", sparse: 1 }
(node:1) UnhandledPromiseRejectionWarning: MongoServerError: An equivalent index already exists with the same name but different options. Requested index: { v: 2, key: { open: 1 }, name: "open_1", sparse: true }, existing index: { v: 2, key: { open: 1 }, name: "open_1", sparse: 1 }
    at Connection.onMessage (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connection.js:231:30)
    at MessageStream.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connection.js:61:60)
    at MessageStream.emit (events.js:400:28)
    at MessageStream.emit (domain.js:475:12)
    at processIncomingData (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:125:16)
    at MessageStream._write (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:33:9)
    at writeOrBuffer (internal/streams/writable.js:358:12)
    at MessageStream.Writable.write (internal/streams/writable.js:303:10)
    at Socket.ondata (internal/streams/readable.js:731:22)
    at Socket.emit (events.js:400:28)
    at Socket.emit (domain.js:475:12)
    at addChunk (internal/streams/readable.js:293:12)
    at readableAddChunk (internal/streams/readable.js:267:9)
    at Socket.Readable.push (internal/streams/readable.js:206:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:188:23)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:1) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Some indexes for collection 'rocketchat_credential_tokens' could not be created:
	An equivalent index already exists with the same name but different options. Requested index: { v: 2, key: { expireAt: 1 }, name: "expireAt_1", sparse: true, expireAfterSeconds: 0 }, existing index: { v: 2, key: { expireAt: 1 }, name: "expireAt_1", sparse: 1, expireAfterSeconds: 0 }
(node:1) UnhandledPromiseRejectionWarning: MongoServerError: An equivalent index already exists with the same name but different options. Requested index: { v: 2, key: { expireAt: 1 }, name: "expireAt_1", sparse: true, expireAfterSeconds: 0 }, existing index: { v: 2, key: { expireAt: 1 }, name: "expireAt_1", sparse: 1, expireAfterSeconds: 0 }
    at Connection.onMessage (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connection.js:231:30)
    at MessageStream.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connection.js:61:60)
    at MessageStream.emit (events.js:400:28)
    at MessageStream.emit (domain.js:475:12)
    at processIncomingData (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:125:16)
    at MessageStream._write (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:33:9)
    at writeOrBuffer (internal/streams/writable.js:358:12)
    at MessageStream.Writable.write (internal/streams/writable.js:303:10)
    at Socket.ondata (internal/streams/readable.js:731:22)
    at Socket.emit (events.js:400:28)
    at Socket.emit (domain.js:475:12)
    at addChunk (internal/streams/readable.js:293:12)
    at readableAddChunk (internal/streams/readable.js:267:9)
    at Socket.Readable.push (internal/streams/readable.js:206:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:188:23)
(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 4)
Some indexes for collection 'rocketchat_room' could not be created:
	An equivalent index already exists with the same name but different options. Requested index: { v: 2, unique: true, key: { name: 1 }, name: "name_1", sparse: true }, existing index: { v: 2, unique: true, key: { name: 1 }, name: "name_1", sparse: 1 }
(node:1) UnhandledPromiseRejectionWarning: MongoServerError: An equivalent index already exists with the same name but different options. Requested index: { v: 2, unique: true, key: { name: 1 }, name: "name_1", sparse: true }, existing index: { v: 2, unique: true, key: { name: 1 }, name: "name_1", sparse: 1 }
    at Connection.onMessage (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connection.js:231:30)
    at MessageStream.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connection.js:61:60)
    at MessageStream.emit (events.js:400:28)
    at MessageStream.emit (domain.js:475:12)
    at processIncomingData (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:125:16)
    at MessageStream._write (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:33:9)
    at writeOrBuffer (internal/streams/writable.js:358:12)
    at MessageStream.Writable.write (internal/streams/writable.js:303:10)
    at Socket.ondata (internal/streams/readable.js:731:22)
    at Socket.emit (events.js:400:28)
    at Socket.emit (domain.js:475:12)
    at addChunk (internal/streams/readable.js:293:12)
    at readableAddChunk (internal/streams/readable.js:267:9)
    at Socket.Readable.push (internal/streams/readable.js:206:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:188:23)
(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 6)
Some indexes for collection 'rocketchat_subscription' could not be created:
	An equivalent index already exists with the same name but different options. Requested index: { v: 2, key: { desktopNotifications: 1 }, name: "desktopNotifications_1", sparse: true }, existing index: { v: 2, key: { desktopNotifications: 1 }, name: "desktopNotifications_1", sparse: 1 }
(node:1) UnhandledPromiseRejectionWarning: MongoServerError: An equivalent index already exists with the same name but different options. Requested index: { v: 2, key: { desktopNotifications: 1 }, name: "desktopNotifications_1", sparse: true }, existing index: { v: 2, key: { desktopNotifications: 1 }, name: "desktopNotifications_1", sparse: 1 }
    at Connection.onMessage (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connection.js:231:30)
    at MessageStream.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connection.js:61:60)
    at MessageStream.emit (events.js:400:28)
    at MessageStream.emit (domain.js:475:12)
    at processIncomingData (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:125:16)
    at MessageStream._write (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:33:9)
    at writeOrBuffer (internal/streams/writable.js:358:12)
    at MessageStream.Writable.write (internal/streams/writable.js:303:10)
    at Socket.ondata (internal/streams/readable.js:731:22)
    at Socket.emit (events.js:400:28)
    at Socket.emit (domain.js:475:12)
    at addChunk (internal/streams/readable.js:293:12)
    at readableAddChunk (internal/streams/readable.js:267:9)
    at Socket.Readable.push (internal/streams/readable.js:206:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:188:23)
(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 8)
Some indexes for collection 'rocketchat_uploads' could not be created:
	An equivalent index already exists with the same name but different options. Requested index: { v: 2, key: { rid: 1 }, name: "rid_1", sparse: true }, existing index: { v: 2, key: { rid: 1 }, name: "rid_1" }
(node:1) UnhandledPromiseRejectionWarning: MongoServerError: An equivalent index already exists with the same name but different options. Requested index: { v: 2, key: { rid: 1 }, name: "rid_1", sparse: true }, existing index: { v: 2, key: { rid: 1 }, name: "rid_1" }
    at Connection.onMessage (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connection.js:231:30)
    at MessageStream.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connection.js:61:60)
    at MessageStream.emit (events.js:400:28)
    at MessageStream.emit (domain.js:475:12)
    at processIncomingData (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:125:16)
    at MessageStream._write (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:33:9)
    at writeOrBuffer (internal/streams/writable.js:358:12)
    at MessageStream.Writable.write (internal/streams/writable.js:303:10)
    at Socket.ondata (internal/streams/readable.js:731:22)
    at Socket.emit (events.js:400:28)
    at Socket.emit (domain.js:475:12)
    at addChunk (internal/streams/readable.js:293:12)
    at readableAddChunk (internal/streams/readable.js:267:9)
    at Socket.Readable.push (internal/streams/readable.js:206:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:188:23)
(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 10)
Some indexes for collection 'rocketchat_message' could not be created:
	An equivalent index already exists with the same name but different options. Requested index: { v: 2, key: { editedAt: 1 }, name: "editedAt_1", sparse: true }, existing index: { v: 2, key: { editedAt: 1 }, name: "editedAt_1", sparse: 1 }
(node:1) UnhandledPromiseRejectionWarning: MongoServerError: An equivalent index already exists with the same name but different options. Requested index: { v: 2, key: { editedAt: 1 }, name: "editedAt_1", sparse: true }, existing index: { v: 2, key: { editedAt: 1 }, name: "editedAt_1", sparse: 1 }
    at Connection.onMessage (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connection.js:231:30)
    at MessageStream.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connection.js:61:60)
    at MessageStream.emit (events.js:400:28)
    at MessageStream.emit (domain.js:475:12)
    at processIncomingData (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:125:16)
    at MessageStream._write (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:33:9)
    at writeOrBuffer (internal/streams/writable.js:358:12)
    at MessageStream.Writable.write (internal/streams/writable.js:303:10)
    at Socket.ondata (internal/streams/readable.js:731:22)
    at Socket.emit (events.js:400:28)
    at Socket.emit (domain.js:475:12)
    at addChunk (internal/streams/readable.js:293:12)
    at readableAddChunk (internal/streams/readable.js:267:9)
    at Socket.Readable.push (internal/streams/readable.js:206:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:188:23)
(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 12)
(node:1) NOTE: We are formalizing our plans to enter AWS SDK for JavaScript (v2) into maintenance mode in 2023.

Please migrate your code to use AWS SDK for JavaScript (v3).
For more information, check the migration guide at https://a.co/7PzMCcy
{"level":40,"time":"2024-03-02T21:10:27.608Z","pid":1,"hostname":"esmith.domain.com","name":"VoIPService","msg":"Voip is not enabled. Cant start the service"}
{"level":51,"time":"2024-03-02T21:10:27.809Z","pid":1,"hostname":"esmith.domain.com","name":"Migrations","msg":"Not migrating, already at version 304"}
[2024-03-02T21:10:27.817Z] INFO  4b14cdd4-bf58-4205-94f7-aa9ef269ef66/BROKER: Moleculer v0.14.31 is starting...
[2024-03-02T21:10:27.817Z] INFO  4b14cdd4-bf58-4205-94f7-aa9ef269ef66/BROKER: Namespace: <not defined>
[2024-03-02T21:10:27.818Z] INFO  4b14cdd4-bf58-4205-94f7-aa9ef269ef66/BROKER: Node ID: 4b14cdd4-bf58-4205-94f7-aa9ef269ef66
[2024-03-02T21:10:27.819Z] INFO  4b14cdd4-bf58-4205-94f7-aa9ef269ef66/REGISTRY: Strategy: RoundRobinStrategy
[2024-03-02T21:10:27.819Z] INFO  4b14cdd4-bf58-4205-94f7-aa9ef269ef66/REGISTRY: Discoverer: LocalDiscoverer
[2024-03-02T21:10:27.821Z] INFO  4b14cdd4-bf58-4205-94f7-aa9ef269ef66/BROKER: Serializer: EJSONSerializer
[2024-03-02T21:10:27.828Z] INFO  4b14cdd4-bf58-4205-94f7-aa9ef269ef66/BROKER: Validator: FastestValidator
[2024-03-02T21:10:27.830Z] INFO  4b14cdd4-bf58-4205-94f7-aa9ef269ef66/BROKER: Registered 13 middleware(s).
[2024-03-02T21:10:27.831Z] INFO  4b14cdd4-bf58-4205-94f7-aa9ef269ef66/BROKER: Transporter: TcpTransporter
{"level":30,"time":"2024-03-02T21:10:27.845Z","pid":1,"hostname":"esmith.domain.com","name":"QueueWorker","msg":"Starting queue worker"}
{"level":30,"time":"2024-03-02T21:10:27.846Z","pid":1,"hostname":"esmith.domain.com","name":"QueueWorker","msg":"Registering workers of type \"work\""}
{"level":30,"time":"2024-03-02T21:10:27.846Z","pid":1,"hostname":"esmith.domain.com","name":"QueueWorker","msg":"Registering workers of type \"workComplete\""}
{"level":51,"time":"2024-03-02T21:10:27.855Z","pid":1,"hostname":"esmith.domain.com","name":"DatabaseWatcher","msg":"Using change streams"}
{"level":30,"time":"2024-03-02T21:10:27.855Z","pid":1,"hostname":"esmith.domain.com","name":"QueueWorker","msg":"Creating indexes for queue worker"}
[2024-03-02T21:10:27.865Z] INFO  4b14cdd4-bf58-4205-94f7-aa9ef269ef66/TRANSIT: Connecting to the transporter...
{"level":30,"time":"2024-03-02T21:10:27.866Z","pid":1,"hostname":"esmith.domain.com","name":"License","msg":"New Enterprise License"}
{"level":30,"time":"2024-03-02T21:10:27.870Z","pid":1,"hostname":"esmith.domain.com","name":"License","msg":"Limit validation failed","kind":"roomsPerGuest","limit":{"max":0,"behavior":"start_fair_policy"}}
[2024-03-02T21:10:27.874Z] INFO  4b14cdd4-bf58-4205-94f7-aa9ef269ef66/TRANSPORTER: TCP server is listening on port 37224
[2024-03-02T21:10:27.874Z] INFO  4b14cdd4-bf58-4205-94f7-aa9ef269ef66/TRANSPORTER: UDP Discovery is disabled.
[2024-03-02T21:10:27.875Z] INFO  4b14cdd4-bf58-4205-94f7-aa9ef269ef66/TRANSPORTER: TCP Transporter started.
{"level":30,"time":"2024-03-02T21:10:27.894Z","pid":1,"hostname":"esmith.domain.com","name":"OmnichannelQueue","msg":"Service stopped"}
{"level":30,"time":"2024-03-02T21:10:27.958Z","pid":1,"hostname":"esmith.domain.com","name":"SAUMonitor","msg":"[aggregate] - Start Cron."}
{"level":30,"time":"2024-03-02T21:10:28.152Z","pid":1,"hostname":"esmith.domain.com","name":"EmailInbox","msg":"Clearing old email inbox registrations"}
{"level":30,"time":"2024-03-02T21:10:28.158Z","pid":1,"hostname":"esmith.domain.com","name":"Scheduler","section":"Omnichannel-Queue-Inactivity-Monitor","msg":"Service started"}
{"level":30,"time":"2024-03-02T21:10:28.176Z","pid":1,"hostname":"esmith.domain.com","name":"Scheduler","section":"AutoTransferChatScheduler","msg":"Service started"}
{"level":30,"time":"2024-03-02T21:10:28.195Z","pid":1,"hostname":"esmith.domain.com","name":"License","msg":"Limit validation failed","kind":"guestUsers","limit":{"max":0,"behavior":"start_fair_policy"}}
{"level":30,"time":"2024-03-02T21:10:28.196Z","pid":1,"hostname":"esmith.domain.com","name":"EmailInbox","msg":"Configured a total of 0 inboxes"}
{"level":30,"time":"2024-03-02T21:10:28.196Z","pid":1,"hostname":"esmith.domain.com","name":"Scheduler","section":"AutoCloseOnHoldScheduler","msg":"Service started"}
{"level":30,"time":"2024-03-02T21:10:28.251Z","pid":1,"hostname":"esmith.domain.com","name":"License","msg":"License validated","modules":[{"module":"canned-responses"},{"module":"ldap-enterprise"},{"module":"livechat-enterprise"},{"module":"voip-enterprise"},{"module":"omnichannel-mobile-enterprise"},{"module":"engagement-dashboard"},{"module":"push-privacy"},{"module":"teams-mention"},{"module":"saml-enterprise"},{"module":"oauth-enterprise"},{"module":"federation"},{"module":"videoconference-enterprise"},{"module":"message-read-receipt"},{"module":"outlook-calendar"}]}
{"level":51,"time":"2024-03-02T21:10:28.252Z","pid":1,"hostname":"esmith.domain.com","name":"License","msg":"License installed","version":"3.0","hash":"GcUNAPak"}
Some indexes for collection 'rocketchat_room' could not be created:
	An equivalent index already exists with the same name but different options. Requested index: { v: 2, key: { open: 1 }, name: "open_1", sparse: true }, existing index: { v: 2, key: { open: 1 }, name: "open_1", sparse: 1 }
=== UnHandledPromiseRejection ===
MongoServerError: An equivalent index already exists with the same name but different options. Requested index: { v: 2, key: { open: 1 }, name: "open_1", sparse: true }, existing index: { v: 2, key: { open: 1 }, name: "open_1", sparse: 1 }
    at Connection.onMessage (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connection.js:231:30)
    at MessageStream.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connection.js:61:60)
    at MessageStream.emit (events.js:400:28)
    at MessageStream.emit (domain.js:475:12)
    at processIncomingData (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:125:16)
    at MessageStream._write (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:33:9)
    at writeOrBuffer (internal/streams/writable.js:358:12)
    at MessageStream.Writable.write (internal/streams/writable.js:303:10)
    at Socket.ondata (internal/streams/readable.js:731:22)
    at Socket.emit (events.js:400:28)
    at Socket.emit (domain.js:475:12)
    at addChunk (internal/streams/readable.js:293:12)
    at readableAddChunk (internal/streams/readable.js:267:9)
    at Socket.Readable.push (internal/streams/readable.js:206:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:188:23)
    at TCP.callbackTrampoline (internal/async_hooks.js:130:17) {
  ok: 0,
  code: 85,
  codeName: 'IndexOptionsConflict',
  '$clusterTime': {
    clusterTime: new Timestamp({ t: 1709413827, i: 3 }),
    signature: {
      hash: new Binary(Buffer.from("0000000000000000000000000000000000000000", "hex"), 0),
      keyId: 0
    }
  },
  operationTime: new Timestamp({ t: 1709413827, i: 3 }),
  [Symbol(errorLabels)]: Set(0) {}
}
---------------------------------
Errors like this can cause oplog processing errors.
Setting EXIT_UNHANDLEDPROMISEREJECTION will cause the process to exit allowing your service to automatically restart the process
Future node.js versions will automatically exit the process
=================================
[2024-03-02T21:10:28.400Z] INFO  4b14cdd4-bf58-4205-94f7-aa9ef269ef66/REGISTRY: '$node' service is registered.
[2024-03-02T21:10:28.402Z] INFO  4b14cdd4-bf58-4205-94f7-aa9ef269ef66/REGISTRY: 'matrix' service is registered.
[2024-03-02T21:10:28.402Z] INFO  4b14cdd4-bf58-4205-94f7-aa9ef269ef66/$NODE: Service '$node' started.
[2024-03-02T21:10:28.402Z] INFO  4b14cdd4-bf58-4205-94f7-aa9ef269ef66/MATRIX: Service 'matrix' started.
[2024-03-02T21:10:28.403Z] INFO  4b14cdd4-bf58-4205-94f7-aa9ef269ef66/BROKER: ✔ ServiceBroker with 2 service(s) started successfully in 556ms.
{"level":30,"time":"2024-03-02T21:10:28.545Z","pid":1,"hostname":"esmith.domain.com","name":"LDAP","msg":"Enabling LDAP Background Sync","jobName":"LDAP_Sync"}
(node:1) [MONGODB DRIVER] Warning: cursor.count is deprecated and will be removed in the next major version, please use `collection.estimatedDocumentCount` or `collection.countDocuments` instead 
{"level":30,"time":"2024-03-02T21:10:28.551Z","pid":1,"hostname":"esmith.domain.com","name":"LDAP","msg":"Enabling LDAP Background Sync","jobName":"LDAP_Sync"}
{"level":30,"time":"2024-03-02T21:10:28.930Z","pid":1,"hostname":"esmith.domain.com","name":"CROWD","msg":"Disabling CROWD Background Sync"}
{"level":30,"time":"2024-03-02T21:10:28.931Z","pid":1,"hostname":"esmith.domain.com","name":"System","msg":"Using GridFS for custom sounds storage"}
{"level":30,"time":"2024-03-02T21:10:28.932Z","pid":1,"hostname":"esmith.domain.com","name":"System","msg":"Using GridFS for custom emoji storage"}
+----------------------------------------------------+
|                   SERVER RUNNING                   |
+----------------------------------------------------+
|                                                    |
|  Rocket.Chat Version: 6.6.2                        |
|       NodeJS Version: 14.21.3 - x64                |
|      MongoDB Version: 5.0.25                       |
|       MongoDB Engine: wiredTiger                   |
|             Platform: linux                        |
|         Process Port: 3000                         |
|             Site URL: https://chat.domain.com |
|     ReplicaSet OpLog: Enabled                      |
|          Commit Hash: 44b682f6bc                   |
|        Commit Branch: HEAD                         |
|                                                    |
+----------------------------------------------------+
{"level":30,"time":"2024-03-02T21:10:29.127Z","pid":1,"hostname":"esmith.domain.com","name":"Rocket.Chat Apps","msg":"\"apps.statusUpdate\" event received for app \"3b387ba9-f57c-44c6-9810-8c0256abd64c\", but the status is the same"}

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the MongoDB 4-to-5 upgrade with Rocket.Chat 6.6.2 and the documented docker-compose restart, then inspect the startup logs for index-creation failures. Compare the requested and existing indexes for the listed collections; done means the upgrade and restart complete without the reported equivalent-index errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
mongodb
Domain
databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.