Uploaded image for project: 'Node.js Driver'
  1. Node.js Driver
  2. NODE-5305

Error in Topology: ReplicaSetNoPrimary - AWS Lambda

    • Type: Icon: Bug Bug
    • Resolution: Gone away
    • Priority: Icon: Blocker - P1 Blocker - P1
    • None
    • Affects Version/s: None
    • Component/s: Connection String
    • 0
    • Not Needed
    • None
    • Not Needed
    • None
    • None
    • None
    • None
    • None
    • None

      What problem are you facing?

      having issue trying to connect with mongo atlas using aws lambda.

      What driver and relevant dependency versions are you using?

      nodejs 14.x
      mongodb 5.5 ( mongo client )
      mongo atlas 6.0.6

      Steps to reproduce?

      this is my code when try to connect:

      // marcador de posición de código
      const { MongoClient } = require('mongodb')
      const URI = process.env.MONGO_URI
      let cachedDb = null
      const connect = async () => {  const payload = { success: false, data: null, message: [], errors: [] }  try {    if (!cachedDb) {      // Si no está conectado, establece la conexión      const client = await MongoClient.connect(URI)      cachedDb = client.db()      payload.success = true      payload.message.push('Mongo connection established successfully')      payload.data = cachedDb    }    return payload  } catch (error) {    console.error('Error conecting with database:', error)    payload.success = false    payload.data = null    payload.errors.push('Uncontrolled error in mongoConnection.service.connect')    return payload  }}
      module.exports = { connect }

      then when I try to run it in aws lambda, serverless.com report me this error (from aws)

      // marcador de posición de código
      2023-05-22T22:30:55.830Z b4f960ec-6c55-43d6-b6a0-b4ea59a63538 ERROR Error conecting with database: MongoServerSelectionError: Server selection timed out after 30000 ms at Timeout._onTimeout (/var/task/node_modules/mongodb/lib/sdam/topology.js:278:38) at listOnTimeout (internal/timers.js:557:17) at processTimers (internal/timers.js:500:7) { reason: TopologyDescription { type: 'ReplicaSetNoPrimary', servers: Map(3) { 'plata-dev-shard-00-01.w4zuh.mongodb.net:27017' => [ServerDescription], 'plata-dev-shard-00-02.w4zuh.mongodb.net:27017' => [ServerDescription], 'plata-dev-shard-00-00.w4zuh.mongodb.net:27017' => [ServerDescription] }, stale: false, compatible: true, heartbeatFrequencyMS: 10000, localThresholdMS: 15, setName: 'atlas-yu8x8e-shard-0', maxElectionId: null, maxSetVersion: null, commonWireVersion: 0, logicalSessionTimeoutMinutes: null }, code: undefined, [Symbol(errorLabels)]: Set(0) {} } 

       

       

      I already peering with my VPC, allow public connection, and did all the tips that I found in internet, but I don't know why it still failling

       

            Assignee:
            daria.pardue@mongodb.com Daria Pardue
            Reporter:
            frani@tarjetapalta.com francisco Innocenti
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved:
              None
              None
              None
              None