The default connection pool size in the Node.js client for MongoDB is 5. Since each change stream cursor opens a new connection, the connection pool needs to be at least as large as the number of cursors.
In version 3.x of the Node Mongo Driver use ‘poolSize’:
const mongoConnection = await MongoClient.connect(URL, {poolSize: 100});
In version 4.x of the Node Mongo Driver use ‘minPoolSize’ and ‘maxPoolSize’:
const mongoConnection = await MongoClient.connect(URL, {minPoolSize: 100, maxPoolSize: 1000});
(Thanks to MongoDB Inc. for investigating this issue.)