DEV Community

Victor Maina
Victor Maina

Posted on

# Fixing the Dreaded `querySrv ENOTFOUND` Error in MongoDB Atlas

If you've ever tried connecting your Node.js application to MongoDB Atlas and encountered the querySrv ENOTFOUND error, you're not alone. This error can be frustrating, but don't worry—we've got you covered. In this article, we'll explore what causes this error and how to fix it.

What Causes the querySrv ENOTFOUND Error?

The querySrv ENOTFOUND error occurs when your application fails to resolve the DNS SRV record required by the mongodb+srv:// connection string. MongoDB Atlas uses SRV records to simplify connection strings, but sometimes DNS issues can prevent these records from being resolved.

Common Causes:

  • DNS Server Issues: Your DNS server might not support SRV records.
  • Network Problems: Transient network issues can disrupt DNS resolution.
  • Incorrect Connection String: The hostname in your connection string might be invalid.

How to Fix It

1. Switch to the Standard Connection String

The easiest way to bypass this issue is to use the standard connection string (mongodb://) instead of the SRV connection string (mongodb+srv://). Here's how:

  1. Log in to MongoDB Atlas and navigate to your cluster.
  2. Click Connect and select Connect Your Application.
  3. Choose Node.js as the driver and copy the standard connection string.
  4. Update your .env file with the new connection string:
   MONGO_URI=mongodb://<username>:<password>@cluster0-shard-00-00.nsfqg.mongodb.net:27017,cluster0-shard-00-01.nsfqg.mongodb.net:27017,cluster0-shard-00-02.nsfqg.mongodb.net:27017/uvotake?ssl=true&replicaSet=atlas-nsfqg-shard-0&authSource=admin

Enter fullscreen mode Exit fullscreen mode
  1. Update your code to use the new connection string:
mongoose.connect(process.env.MONGO_URI, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
}).then(() => {
  console.log('Connected to MongoDB');
}).catch((err) => {
  console.error('Error connecting to MongoDB:', err);
});

Enter fullscreen mode Exit fullscreen mode
  1. Whitelist Your IP Address MongoDB Atlas blocks all incoming connections by default. You need to whitelist your IP address to allow access:

Go to Network Access in your MongoDB Atlas dashboard.

Click Add IP Address and enter your current IP address.

Add a description (e.g., "Home Network") and click Confirm.

  1. Use a Reliable DNS Server If your DNS server doesn't support SRV records, switch to a public DNS server like Google DNS (8.8.8.8) or Cloudflare DNS (1.1.1.1).

Conclusion
The querySrv ENOTFOUND error can be a roadblock, but it's usually easy to fix. By switching to the standard connection string, whitelisting your IP address, or using a reliable DNS server, you can get back to building your application in no time.

Happy coding! 🚀

Further Reading:

MongoDB Atlas Documentation

Node.js MongoDB Driver Documentation

Top comments (0)