Node Mongodb error : No valid replicaset instance servers found - node.js

We have multiple APIs running on AWS instance on different ports. One of the API is giving error "No valid replicaset instance servers found". Other APIs is working fine. No messages in mongodb log. Tried all other options mentioned in stackoverflow such as increasing timeout etc. However did not help.
Same API works properly when run on local server. Restarted AWS instance and it started working fine.
Not able to replicate the issue. Any direction to check the root cause. Would like to avoid happening again. Would appreciate any areas to investigate further to find root cause.

Related

Mongo connecting to localhost although the conn string is right accross the app

So I have an Node API hosted on AWS' Beanstalk and it's connected to a DocumentDB database hosted within the same VPC, unfortunately I can't share too much info on the project since I've inherited it, but currently we have a terrible logic of creating a new db for each tenant in the system so when they sign in we create a new mongoose connection (with the proper string). Upon that there is also a global connection to a central db which is supposed to be established upon the initial start of the API - this works as expected. What doesn't work for some reason is that whenever I make a request that's supposed to go through for a certain tenant I get the following error on AWS Beanstalk logs:
ERROR IMAGE
Unfortunately, I can't fully disclose the connection strings, but I can tell you that there are no references to "locahost" within the project (noted in the picture):
PROJECT SEARCH RESULT
Has anyone encountered similar issues ?

Unable to run the angular application. Getting error No such file exists robots933456.txt

I am running the angular application in Microsoft Teams and deploying it on Azure.
But it's not running up as it is looking for the robots933456.txt route.
It wasn’t the case before today.
Please guide me on how to proceed further.
On running the app the logs shows:
The error was natively on my side nothing to do with the above but pretty much seen and raised by people so thought of sharing below:
After doing some research figured out I can safely ignore this message. /robots933456.txt is a dummy URL
the path that App Service uses to check if the container is capable of serving
requests. A 404 response simply indicates that the path doesn't exist, but
it lets App Service know that the container is healthy and ready to respond
to requests.
https://github.com/MicrosoftDocs/azure-docs/issues/32472

How to solve the error SequelizeHostNotFoundError?

Problem essence
Writing the API server in NodeJS (Express) using the PostgreSQL database (connecting to it remotely through the service ElephantSQL and work through Sequelize). Today appeared an error "SequelizeHostNotFoundError". It occurs even in the checked endpoints.
Error text
(it remains only a screenshot of the error)
My attempts to solve the problem
Tried to perform a GET request to my API not via Postman and via the browser (did not help).
Tried to create a new DB on the same service ElephantSQL (didn't help, but migrations to create new tables and relationships somehow executed and endpoints still not working).
Tried to connect to the database directly via IDE DataGrip (connection test is successful and the database is loaded with all the tables).
What could be the problem ? On stackoverflow some wrote that the problem may occur due to the lack of a paid subscription to Google Cloude Functions, but I do not seem to use it. There is an option to connect to PostgreSQL locally, but I want to understand.

Parse Server "Unable to ensure uniqueness for usernames"

Me and my partner are having serious issues with MongoDB these days. Suddenly, our Parse Server mounted on MongoDB, in a VPS, started failing. Our app couldn't connect there, nor the Parse Dashboard. Something was failing.
In the parse logs, this is what appears:
{"level":"info","message":"Parse LiveQuery Server starts
running","timestamp":"2017-07-09T20:23:59.711Z"}
{"level":"info","message":"Parse LiveQuery Server starts
running","timestamp":"2017-07-09T20:25:47.884Z"} {"message":"Unable to
ensure uniqueness for usernames:
","name":"MongoError","stack":"MongoError: failed to connect to server
[localhost:27017] on first connect\n at null.
(/home/main/StepApp/node_modules/mongodb-core/lib/$ {"message":"Unable
to ensure uniqueness for user email addresses:
","name":"MongoError","stack":"MongoError: failed to connect to server
[localhost:27017] on first connect\n at null.
(/home/main/StepApp/node_modules/mongod$
We tried this whole bunch of things:
Installing a new MongoDB version
Import the old .db files
Restart our Node.js instancies via pm2
Adding more space to our VPS (it seems MongoDB was having some trouble with disk space, but this is already fixed).
Adding an admin user to our db, with all permissions, and then adding it to the mongodb connection string in our Node file.
After all of this, several server restarts, pm2 restarts, mongo restarts...
... nothing works.
When I restart the server, I receive that strange error string I copied before, though Mongo is working fine.
Seems to be more of a Parse problem... but, why?
Any help will he appreciated!
EDIT / UPDATE:
I've been checking if MongoDB is working, and it's service "mongod" is online. Tried to listen to a different port, changed it too in the index.js mongo connection string, but I keep getting the same error.
Strange thing is, that when I connect to my database with my newly created Mongo user, it authenticates correctly! (I could see it in the logs). So it seems to be a Parse error, somehow it doesn't get the Mongo response or something like that.
What do you think?

Issues with a Node app deployed through elastic beanstalk

I'm deploying a node app to an ec2 instance through aws elastic beanstalk. I set up a cron job with the cron node package that, on tick, will run a sequelize query, parse the data returned, then send it in the body of an email.
When testing locally, it works fine and the email gets sent. When i deploy it using awsebcli command eb deploy, it says the deploy was successful, but I don't receive any emails.
At first I believed the npm start command wasn't working on the server, but I checked the error logs and it appears sequelize is throwing a time out error when trying to connect.
I wrote a configuration for sequelize to connect to multiple schemas at once. Three of those schemas are hosted on the same RDS, one on a seperate RDS.
I've done almost the exact same thing with another node app and it worked fine. The only thing different is the additional schema on a seperate RDS that I'm connecting to fine on my local machine.
Any thoughts or suggestions would be appreciated.
EDIT: Checked server logs and found Sequelize connection error.
Found that the issue was caused by security groups on aws preventing my instance from connecting to one of the DBs it needed.
Edit:
Specifics have been requested. Since this is a very old post and I don't have access to AWS anymore, I can venture a guess on what I did.
If my memory serves correct, the db I was blocked by was hosted in a different aws account. Changing the security group on the DB was not an option as security on that account was firmly maintained. The reason I was able to connect locally was because the facility I was working at had a whitelisted IP on the DB security groups. I eventually settled on running the script on my local machine, since my machine rarely left that location and it did not matter where the script was run, just that it ran periodically. Ideally though, I would have been able to change the security group on the db to allow incoming traffic from my server.

Resources