DEV Community

Cover image for How to fix the error 'MongoServerError: bad auth : Authentication failed'?
Shafia Rahman Chowdhury
Shafia Rahman Chowdhury

Posted on • Updated on

How to fix the error 'MongoServerError: bad auth : Authentication failed'?

Oftentimes, you might come across the error "bad auth: authentication failed." What does this error mean?

"Bad auth" means the authentication method is not proper due to providing wrong username or password; hence, it failed.

This blog will discuss the possible mistakes we make for which this error appears and the solutions we can try to fix the error.

1) using whitespaces

When you put your username and password, do not add any whitespace (extra space) before and after your username and password in the MongoDB string connection.

Mistake-1

Image description

Mistake-2
Image description

Correct way-1

Image description

const uri = mongodb+srv://iphoneUser:Tq6uuoPOts7CiRlK@cluster0.ebhzh.mongodb.net/?retryWrites=true&w=majority;

Correct way-2
Image description

const uri = mongodb+srv://${process.env.DB_USER}:${process.env.DB_PASS}@cluster0.ebhzh.mongodb.net/?retryWrites=true&w=majority;

2) username and password did not match

Check if the username and password in your MongoDB connection string matches with the username and password in your mongodb database access

Correct: Username and password matches

MongoDB connection string
Image description

Database Access
Image description

3) Forgot to save username and password

Make sure you have clicked the 'Add User' button after creating the username and password in your database access.

Image description

Image description

4) Using angle brackets

Do not put your username and password inside the angle brackets like the picture below:

Wrong

Image description

Correct

Image description

5) Environment variables did not match

If you are using environment variables, make sure you have written them correctly in your MongoDB connection string

Did not match

Image description

Image description

Matched

Image description

Image description

6) Do not add any space when assigning your secret information to the environment variables

Wrong:

Image description

Correct:

Image description

7) Don't forget to do the following before using the environment variables

Always check if you have installed dotenv in your package.json. If you haven't, then run this command to install dotenv

npm i dotenv

After installation, make sure you have imported dotenv

require("dotenv").config();

Take time and go through your code to see if you have made the mistakes discussed above when your authentication fails. I am sure one of these solutions will help you connect your MongoDB successfully. Happy coding!!!

Top comments (11)

Collapse
 
dapone profile image
Afisunlu Dapo

Great! the > had me for hours.

Collapse
 
masrafi404 profile image
Ali Hasan Masrafi

very helpful, thakn you!

Collapse
 
devnenyasha profile image
Melody Mbewe

Thanks buddy, you did a great job. I was stuck for hours. You really helped a lot.

Collapse
 
grim_reaper profile image
Samuel Akong

Thanks soo much this was very helpful am so glad i saw this post thanks bro

Collapse
 
majorroots profile image
DiscFlight

My issue was that my nodemon needed a hard restart after editing the env variables.

Collapse
 
mernsanowar profile image
Md Sanowar Hossain

very helpful

Collapse
 
niketketanbhaipatadiya profile image
Niket Patadiya

Great Thank you so much finding solutions from 2 hours by this i have solved error in 5 minutes..

Collapse
 
harbdoulryhahemn profile image
harbdoulryhahemn

Waow! this is great... thanks bro.

Collapse
 
strubloid profile image
Strubloid

Why you never had the things to copy and paste? if we are having some issues with the string, could be nice to have in your article what is right by copying it, so we could compare what is working for you with our own configuration.

Collapse
 
emeka_f3888 profile image
Emeka Okorie Ezeogo

Hey Guys, if you are having this same challenge especially with any mac OS.

Ensure to remove anything user on your DB_Username key and replace it with only Name.
Everything regarding this challenge will be resolved.