I have a mongodb database that I am connecting to with mongoose in nodejs. When I try connect to the serverless instance, it will normally work. However, I keep getting Socket connection timeout. If I manage to connect, once I refresh/restart the server, I get the socket error again. I am struggling to traceback the error to see what is causing it… Can anyone help?
I have also tried to connect using the mongodb nodejs package instead to see if it was an error with mongoose. Unfortunately, I get the same error still.
db.js:
const { MongoClient, ServerApiVersion } = require('mongodb');
module.exports = async () => {
// Create a MongoClient with a MongoClientOptions object to set the Stable API version
const client = new MongoClient(process.env.SERVERLESS_DB_URI, {
serverApi: {
version: ServerApiVersion.v1,
strict: true,
deprecationErrors: true,
}
});
try {
// Connect the client to the server (optional starting in v4.7)
await client.connect();
// Send a ping to confirm a successful connection
await client.db("admin").command({ ping: 1 });
console.log("Pinged your deployment. You successfully connected to MongoDB!");
} finally {
// Ensures that the client will close when you finish/error
await client.close();
}
};
Error:
MongoNetworkError: Socket connection timeout
at connectionFailureError (/Users/me/Desktop/app/server/node_modules/mongodb/lib/cmap/connect.js:370:20)
at TLSSocket.<anonymous> (/Users/me/Desktop/app/server/node_modules/mongodb/lib/cmap/connect.js:293:22)
at Object.onceWrapper (node:events:626:26)
at TLSSocket.emit (node:events:511:28)
at emitErrorNT (node:internal/streams/destroy:151:8)
at emitErrorCloseNT (node:internal/streams/destroy:116:3)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
cause: Error [ERR_SOCKET_CONNECTION_TIMEOUT]: Socket connection timeout
at new NodeError (node:internal/errors:399:5)
at internalConnectMultiple (node:net:1099:20)
at Timeout.internalConnectMultipleTimeout (node:net:1638:3)
at listOnTimeout (node:internal/timers:575:11)
at process.processTimers (node:internal/timers:514:7) {
code: 'ERR_SOCKET_CONNECTION_TIMEOUT'
},
connectionGeneration: 0,
[Symbol(errorLabels)]: Set(0) {}
}