MongoDB authentication failed
I am trying to connect to my MongoDB hosted on Railway. I just created the MongoDB, so it only contains a 'test' db with no collection.
When I do not append the URL with db name, I can use mongosh to connect and set to 'test' DB.
But when I do append the db name, , 'MONGO_URL/test', I get:
[DEBUG-ConnectionPool:12243] 1683846894064 connection attempt failed with error [{"ok":0,"code":18,"codeName":"AuthenticationFailed"}] {
type: 'debug',
message: 'connection attempt failed with error [{"ok":0,"code":18,"codeName":"AuthenticationFailed"}]',
className: 'ConnectionPool',
pid: 12243,
date: 1683846894064
}
I am new to this, any help is greatly appreciated!
23 Replies
Project ID:
a686cf21-bbfd-4ddb-9e0c-5c11cd434e88
a686cf21-bbfd-4ddb-9e0c-5c11cd434e88
can I see a screenshot of your service variables
${{MongoDB.MONGO_URL}}
can you connect to it with an external tool like mongodb compass
Haven't tried mongodb compass. Let me download that
mongosh and PyMongo returned the same thing...
Tried compass. Same result
I can connect using the URL, without adding the db name.
After I add the db name, I get authentication error
would the same thing happen with a brand new database?
yes, I tried launching a new MongoDB, same result
okay i will look into it
i can connect just fine, simply dont add the db name to the url
I can also connect without adding the db name to the url......
Guess I need to proceed this way for now
if it works it works, no need to complicate things, perhaps the version of mongodb they run does not support defining the database in the url
the MONGO_URL does not have a database defined in it, and now we know why
I see. Another question if I may
ofc
when I am testing locally, the React app and server run on HTTP, but the MongoDB URL is on HTTPS, causing CORS issue... How can I get around this
isnt cors a browser thing?
youre accessing the mongo database directly from the frontend?
Oh you are right. It is not the database call. It is some other POST that caused CORS
okay where are these POST requests going to
I have a register post
The frontend code is like this
const SERVER_URL = process.env.REACT_APP_SERVER_URL;
function Register() {
const [id, setId] = useState('');
const [passcode, setPasscode] = useState('');
const handleSubmit = async (e) => {
e.preventDefault();
try {
await axios.post(
${SERVER_URL}/register
, { id, passcode });
alert('Registered successfully');
} catch (error) {
alert('Registration failed');
}
};
I am using Flask on the server side and I have
app = Flask(name)
CORS(app)that says failed with error 500, so even though you get a cors error the bigger issue is the error 500.
but with that said, that isnt a railway problem, so you will have to do some debugging yourself
Got it. Thanks for pointing me in the right direction
Really appreciate!
no problem!
i wish you luck