error: MongoError: server instance pool was destroyed

We are getting MongoError: server instance pool was destroyed error with no specific reason.
It is random error post that user is getting internal sever error 500.

we are using

“sails”: “1.5.12”,
“sails-mongo”: “2.0.1”,
node: v18.20.1
“mongodb”: “3.2.7”

connected with mongodb atlas clusters

Server is running on pm2 in ubuntu machine

Server error logs:

Blockquote

2025-01-30T16:05:22: error: Sending 500 ("Server Error") response: 2025-01-30T16:05:22: MongoError: server instance pool was destroyed 2025-01-30T16:05:22: at basicWriteValidations (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/server.js:301:12) 2025-01-30T16:05:22: at basicReadValidations (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/server.js:308:17) 2025-01-30T16:05:22: at Server.command (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/server.js:209:19) 2025-01-30T16:05:22: at checkServer (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/monitoring.js:144:12) 2025-01-30T16:05:22: at /home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/monitoring.js:197:7 2025-01-30T16:05:22: at Pool.reset (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/connection/pool.js:767:39) 2025-01-30T16:05:22: at /home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/monitoring.js:195:19 2025-01-30T16:05:22: at /home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/monitoring.js:160:18 2025-01-30T16:05:22: at Server.command (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/server.js:211:14) 2025-01-30T16:05:22: at checkServer (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/monitoring.js:144:12) 2025-01-30T16:05:22: at Object.monitorServer [as monitorFunction] (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/monitoring.js:186:3) 2025-01-30T16:05:22: at Server.monitor (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/server.js:188:12) 2025-01-30T16:05:22: at Timeout._onTimeout (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/topology.js:753:22) 2025-01-30T16:05:22: at listOnTimeout (node:internal/timers:569:17) 2025-01-30T16:05:22: at processTimers (node:internal/timers:512:7) 2025-01-30T16:05:22: error: Server Error: 2025-01-30T16:05:22: error: MongoError: server instance pool was destroyed 2025-01-30T16:05:22: at basicWriteValidations (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/server.js:301:12) 2025-01-30T16:05:22: at basicReadValidations (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/server.js:308:17) 2025-01-30T16:05:22: at Server.command (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/server.js:209:19) 2025-01-30T16:05:22: at checkServer (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/monitoring.js:144:12) 2025-01-30T16:05:22: at /home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/monitoring.js:197:7 2025-01-30T16:05:22: at Pool.reset (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/connection/pool.js:767:39) 2025-01-30T16:05:22: at /home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/monitoring.js:195:19 2025-01-30T16:05:22: at /home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/monitoring.js:160:18 2025-01-30T16:05:22: at Server.command (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/server.js:211:14) 2025-01-30T16:05:22: at checkServer (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/monitoring.js:144:12) 2025-01-30T16:05:22: at Object.monitorServer [as monitorFunction] (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/monitoring.js:186:3) 2025-01-30T16:05:22: at Server.monitor (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/server.js:188:12) 2025-01-30T16:05:22: at Timeout._onTimeout (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/topology.js:753:22) 2025-01-30T16:05:22: at listOnTimeout (node:internal/timers:569:17) 2025-01-30T16:05:22: at processTimers (node:internal/timers:512:7) 2025-01-30T16:05:22: error: But no response could be sent because another error occurred: 2025-01-30T16:05:22: error: Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client 2025-01-30T16:05:22: at new NodeError (node:internal/errors:405:5) 2025-01-30T16:05:22: at ServerResponse.setHeader (node:_http_outgoing:648:11) 2025-01-30T16:05:22: at ServerResponse.header (/home/ubuntu/ecom-ecsl/node_modules/express/lib/response.js:794:10) 2025-01-30T16:05:22: at ServerResponse.contentType (/home/ubuntu/ecom-ecsl/node_modules/express/lib/response.js:624:15) 2025-01-30T16:05:22: at ServerResponse.sendStatus (/home/ubuntu/ecom-ecsl/node_modules/express/lib/response.js:373:8) 2025-01-30T16:05:22: at Sails.500 (/home/ubuntu/ecom-ecsl/node_modules/sails/lib/router/bindDefaultHandlers.js:67:22) 2025-01-30T16:05:22: at Sails.emit (node:events:517:28) 2025-01-30T16:05:22: at Sails.emit (node:domain:489:12) 2025-01-30T16:05:22: at Sails.emitter.emit (/home/ubuntu/ecom-ecsl/node_modules/sails/lib/app/private/after.js:56:26) 2025-01-30T16:05:22: at handleError (/home/ubuntu/ecom-ecsl/node_modules/sails/lib/hooks/http/initialize.js:427:19) 2025-01-30T16:05:22: at Layer.handle_error (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/layer.js:71:5) 2025-01-30T16:05:22: at trim_prefix (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/index.js:326:13) 2025-01-30T16:05:22: at /home/ubuntu/ecom-ecsl/node_modules/express/lib/router/index.js:286:9 2025-01-30T16:05:22: at Function.process_params (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/index.js:346:12) 2025-01-30T16:05:22: at next (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/index.js:280:10) 2025-01-30T16:05:22: at Layer.handle_error (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/layer.js:67:12) 2025-01-30T16:05:24: error: Sending 500 ("Server Error") response: 2025-01-30T16:05:24: MongoNetworkError: connection 3 to cluster0-shard-00-02.ssuzt.mongodb.net:27017 closed 2025-01-30T16:05:24: at TLSSocket.<anonymous> (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/connection/connection.js:352:9) 2025-01-30T16:05:24: at Object.onceWrapper (node:events:632:26) 2025-01-30T16:05:24: at TLSSocket.emit (node:events:517:28) 2025-01-30T16:05:24: at TLSSocket.emit (node:domain:489:12) 2025-01-30T16:05:24: at node:net:350:12 2025-01-30T16:05:24: at TCP.done (node:_tls_wrap:657:7) 2025-01-30T16:05:24: error: Server Error: 2025-01-30T16:05:24: error: MongoNetworkError: connection 3 to cluster0-shard-00-02.ssuzt.mongodb.net:27017 closed 2025-01-30T16:05:24: at TLSSocket.<anonymous> (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/connection/connection.js:352:9) 2025-01-30T16:05:24: at Object.onceWrapper (node:events:632:26) 2025-01-30T16:05:24: at TLSSocket.emit (node:events:517:28) 2025-01-30T16:05:24: at TLSSocket.emit (node:domain:489:12) 2025-01-30T16:05:24: at node:net:350:12 2025-01-30T16:05:24: at TCP.done (node:_tls_wrap:657:7) 2025-01-30T16:05:24: error: But no response could be sent because another error occurred: 2025-01-30T16:05:24: error: Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client 2025-01-30T16:05:24: at new NodeError (node:internal/errors:405:5) 2025-01-30T16:05:24: at ServerResponse.setHeader (node:_http_outgoing:648:11) 2025-01-30T16:05:24: at ServerResponse.header (/home/ubuntu/ecom-ecsl/node_modules/express/lib/response.js:794:10) 2025-01-30T16:05:24: at ServerResponse.contentType (/home/ubuntu/ecom-ecsl/node_modules/express/lib/response.js:624:15) 2025-01-30T16:05:24: at ServerResponse.sendStatus (/home/ubuntu/ecom-ecsl/node_modules/express/lib/response.js:373:8) 2025-01-30T16:05:24: at Sails.500 (/home/ubuntu/ecom-ecsl/node_modules/sails/lib/router/bindDefaultHandlers.js:67:22) 2025-01-30T16:05:24: at Sails.emit (node:events:517:28) 2025-01-30T16:05:24: at Sails.emit (node:domain:489:12) 2025-01-30T16:05:24: at Sails.emitter.emit (/home/ubuntu/ecom-ecsl/node_modules/sails/lib/app/private/after.js:56:26) 2025-01-30T16:05:24: at handleError (/home/ubuntu/ecom-ecsl/node_modules/sails/lib/hooks/http/initialize.js:427:19) 2025-01-30T16:05:24: at Layer.handle_error (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/layer.js:71:5) 2025-01-30T16:05:24: at trim_prefix (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/index.js:326:13) 2025-01-30T16:05:24: at /home/ubuntu/ecom-ecsl/node_modules/express/lib/router/index.js:286:9 2025-01-30T16:05:24: at Function.process_params (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/index.js:346:12) 2025-01-30T16:05:24: at next (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/index.js:280:10) 2025-01-30T16:05:24: at Layer.handle_error (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/layer.js:67:12) 2025-01-30T16:05:24: error: Sending 500 ("Server Error") response: 2025-01-30T16:05:24: MongoNetworkError: connection 3 to cluster0-shard-00-02.ssuzt.mongodb.net:27017 closed 2025-01-30T16:05:24: at TLSSocket.<anonymous> (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/connection/connection.js:352:9) 2025-01-30T16:05:24: at Object.onceWrapper (node:events:632:26) 2025-01-30T16:05:24: at TLSSocket.emit (node:events:517:28) 2025-01-30T16:05:24: at TLSSocket.emit (node:domain:489:12) 2025-01-30T16:05:24: at node:net:350:12 2025-01-30T16:05:24: at TCP.done (node:_tls_wrap:657:7) 2025-01-30T16:05:24: error: Server Error: 2025-01-30T16:05:24: error: MongoNetworkError: connection 3 to cluster0-shard-00-02.ssuzt.mongodb.net:27017 closed 2025-01-30T16:05:24: at TLSSocket.<anonymous> (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/connection/connection.js:352:9) 2025-01-30T16:05:24: at Object.onceWrapper (node:events:632:26) 2025-01-30T16:05:24: at TLSSocket.emit (node:events:517:28) 2025-01-30T16:05:24: at TLSSocket.emit (node:domain:489:12) 2025-01-30T16:05:24: at node:net:350:12 2025-01-30T16:05:24: at TCP.done (node:_tls_wrap:657:7) 2025-01-30T16:05:24: error: But no response could be sent because another error occurred: 2025-01-30T16:05:24: error: Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client 2025-01-30T16:05:24: at new NodeError (node:internal/errors:405:5) 2025-01-30T16:05:24: at ServerResponse.setHeader (node:_http_outgoing:648:11) 2025-01-30T16:05:24: at ServerResponse.header (/home/ubuntu/ecom-ecsl/node_modules/express/lib/response.js:794:10) 2025-01-30T16:05:24: at ServerResponse.contentType (/home/ubuntu/ecom-ecsl/node_modules/express/lib/response.js:624:15) 2025-01-30T16:05:24: at ServerResponse.sendStatus (/home/ubuntu/ecom-ecsl/node_modules/express/lib/response.js:373:8) 2025-01-30T16:05:24: at Sails.500 (/home/ubuntu/ecom-ecsl/node_modules/sails/lib/router/bindDefaultHandlers.js:67:22) 2025-01-30T16:05:24: at Sails.emit (node:events:517:28) 2025-01-30T16:05:24: at Sails.emit (node:domain:489:12) 2025-01-30T16:05:24: at Sails.emitter.emit (/home/ubuntu/ecom-ecsl/node_modules/sails/lib/app/private/after.js:56:26) 2025-01-30T16:05:24: at handleError (/home/ubuntu/ecom-ecsl/node_modules/sails/lib/hooks/http/initialize.js:427:19) 2025-01-30T16:05:24: at Layer.handle_error (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/layer.js:71:5) 2025-01-30T16:05:24: at trim_prefix (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/index.js:326:13) 2025-01-30T16:05:24: at /home/ubuntu/ecom-ecsl/node_modules/express/lib/router/index.js:286:9 2025-01-30T16:05:24: at Function.process_params (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/index.js:346:12) 2025-01-30T16:05:24: at next (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/index.js:280:10) 2025-01-30T16:05:24: at Layer.handle_error (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/layer.js:67:12) 2025-01-30T16:05:39: error: Sending 500 ("Server Error") response: 2025-01-30T16:05:39: MongoTimeoutError: Server selection timed out after 10000 ms 2025-01-30T16:05:39: at Timeout._onTimeout (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/topology.js:773:16) 2025-01-30T16:05:39: at listOnTimeout (node:internal/timers:569:17) 2025-01-30T16:05:39: at processTimers (node:internal/timers:512:7) 2025-01-30T16:05:39: error: Server Error: 2025-01-30T16:05:39: error: MongoTimeoutError: Server selection timed out after 10000 ms 2025-01-30T16:05:39: at Timeout._onTimeout (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/topology.js:773:16) 2025-01-30T16:05:39: at listOnTimeout (node:internal/timers:569:17) 2025-01-30T16:05:39: at processTimers (node:internal/timers:512:7) 2025-01-30T16:05:39: error: But no response could be sent because another error occurred: 2025-01-30T16:05:39: error: Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client 2025-01-30T16:05:39: at new NodeError (node:internal/errors:405:5) 2025-01-30T16:05:39: at ServerResponse.setHeader (node:_http_outgoing:648:11) 2025-01-30T16:05:39: at ServerResponse.header (/home/ubuntu/ecom-ecsl/node_modules/express/lib/response.js:794:10) 2025-01-30T16:05:39: at ServerResponse.contentType (/home/ubuntu/ecom-ecsl/node_modules/express/lib/response.js:624:15) 2025-01-30T16:05:39: at ServerResponse.sendStatus (/home/ubuntu/ecom-ecsl/node_modules/express/lib/response.js:373:8) 2025-01-30T16:05:39: at Sails.500 (/home/ubuntu/ecom-ecsl/node_modules/sails/lib/router/bindDefaultHandlers.js:67:22) 2025-01-30T16:05:39: at Sails.emit (node:events:517:28) 2025-01-30T16:05:39: at Sails.emit (node:domain:489:12) 2025-01-30T16:05:39: at Sails.emitter.emit (/home/ubuntu/ecom-ecsl/node_modules/sails/lib/app/private/after.js:56:26) 2025-01-30T16:05:39: at handleError (/home/ubuntu/ecom-ecsl/node_modules/sails/lib/hooks/http/initialize.js:427:19) 2025-01-30T16:05:39: at Layer.handle_error (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/layer.js:71:5) 2025-01-30T16:05:39: at trim_prefix (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/index.js:326:13) 2025-01-30T16:05:39: at /home/ubuntu/ecom-ecsl/node_modules/express/lib/router/index.js:286:9 2025-01-30T16:05:39: at Function.process_params (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/index.js:346:12) 2025-01-30T16:05:39: at next (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/index.js:280:10) 2025-01-30T16:05:39: at Layer.handle_error (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/layer.js:67:12) 2025-01-30T16:06:02: error: Sending 500 ("Server Error") response: 2025-01-30T16:06:02: MongoTimeoutError: Server selection timed out after 10000 ms 2025-01-30T16:06:02: at Timeout._onTimeout (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/topology.js:773:16) 2025-01-30T16:06:02: at listOnTimeout (node:internal/timers:569:17) 2025-01-30T16:06:02: at processTimers (node:internal/timers:512:7) 2025-01-30T16:06:02: error: Server Error: 2025-01-30T16:06:02: error: MongoTimeoutError: Server selection timed out after 10000 ms 2025-01-30T16:06:02: at Timeout._onTimeout (/home/ubuntu/ecom-ecsl/node_modules/mongodb-core/lib/sdam/topology.js:773:16) 2025-01-30T16:06:02: at listOnTimeout (node:internal/timers:569:17) 2025-01-30T16:06:02: at processTimers (node:internal/timers:512:7) 2025-01-30T16:06:02: error: But no response could be sent because another error occurred: 2025-01-30T16:06:02: error: Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client 2025-01-30T16:06:02: at new NodeError (node:internal/errors:405:5) 2025-01-30T16:06:02: at ServerResponse.setHeader (node:_http_outgoing:648:11) 2025-01-30T16:06:02: at ServerResponse.header (/home/ubuntu/ecom-ecsl/node_modules/express/lib/response.js:794:10) 2025-01-30T16:06:02: at ServerResponse.contentType (/home/ubuntu/ecom-ecsl/node_modules/express/lib/response.js:624:15) 2025-01-30T16:06:02: at ServerResponse.sendStatus (/home/ubuntu/ecom-ecsl/node_modules/express/lib/response.js:373:8) 2025-01-30T16:06:02: at Sails.500 (/home/ubuntu/ecom-ecsl/node_modules/sails/lib/router/bindDefaultHandlers.js:67:22) 2025-01-30T16:06:02: at Sails.emit (node:events:517:28) 2025-01-30T16:06:02: at Sails.emit (node:domain:489:12) 2025-01-30T16:06:02: at Sails.emitter.emit (/home/ubuntu/ecom-ecsl/node_modules/sails/lib/app/private/after.js:56:26) 2025-01-30T16:06:02: at handleError (/home/ubuntu/ecom-ecsl/node_modules/sails/lib/hooks/http/initialize.js:427:19) 2025-01-30T16:06:02: at Layer.handle_error (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/layer.js:71:5) 2025-01-30T16:06:02: at trim_prefix (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/index.js:326:13) 2025-01-30T16:06:02: at /home/ubuntu/ecom-ecsl/node_modules/express/lib/router/index.js:286:9 2025-01-30T16:06:02: at Function.process_params (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/index.js:346:12) 2025-01-30T16:06:02: at next (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/index.js:280:10) 2025-01-30T16:06:02: at Layer.handle_error (/home/ubuntu/ecom-ecsl/node_modules/express/lib/router/layer.js:67:12)