Cannot connect to Heroku MongoDB - mongodb

I created an Ionic app with NodeJS backend and Mongo database and deployed it to Heroku (with mLab MongoDB add-on). It worked well for a day. The next day I was unable to connect to the DB. The app went to sleep in the meantime, but when I opened it in the browser it woke up. I know that because I saw the static text that I put on the index page. But a few seconds later, an error page appeared. From the console and network tabs output I could figure out that the app is unable to access the database and to fetch data.
I found a post on the internet where the author said that he had the same issue and that he deleted the db instance on Heroku and created a new one. So I did the same and then I was able to start my app normally again.
Today the same thing happened - I can't connect. When I switch the DB URI in the code to mongodb://localhost/mydbname and run the application locally, it works perfectly, so I concluded that the app code itself is fine, there's only an issue with connecting to the DB. It also wouldn't work locally if I try to target the DB on Heroku.
I thought that I might forgot the credentials, so I went to the Heroku dashboard and changed both the username and the password. Then I tried to connect through the console with mongo ds<number>.mlab.com:<port>/heroku_<name> -u <username> -p <password>. Here's the output:
MongoDB shell version v3.6.3
connecting to: mongodb://ds213239.mlab.com:13239/heroku_d3xjtj3x
2018-03-16T16:09:18.215+0100 W NETWORK [thread1] Failed to connect to 54.236.230.76:13239 after 5000ms milliseconds, giving up.
2018-03-16T16:09:18.216+0100 E QUERY [thread1] Error: couldn't connect to server ds213239.mlab.com:13239, connection attempt failed :
connect#src/mongo/shell/mongo.js:251:13
#(connect):1:6
exception: connect failed
Currently I'm using free version of both hosting and DB add-on, because I want only to test the app and to show it to my client (who will then decide if he wants to pay for the Heroku services). If I have nothing to show and if this happens each time, well, that would suck.
And here's the fun part: I wanted to try to open the app one more time so that I could copy and paste the exact error message here. And this time it worked normally! (???) The only thing I did is that I changed the username and pass on the DB dashboard, but I didn't push the updated code and I also didn't change it in the MONGODB_URI config variable.
Does anyone have an idea why does this happen? Is there a way to keep the DB awake and accessible (without paying extra)?
Thanks.
EDIT: It doesn't work again!!! Literally 30 seconds after submitting this post I tried to access the app again and it didn't work! There is an error page which says:
Error: Uncaught (in promise): [object Object]
at c (http://localhost:8100/build/polyfills.js:3:19752)
at c (http://localhost:8100/build/polyfills.js:3:19461)
at http://localhost:8100/build/polyfills.js:3:20233
at t.invokeTask (http://localhost:8100/build/polyfills.js:3:15660)
at Object.onInvokeTask (http://localhost:8100/build/vendor.js:4973:33)
at t.invokeTask (http://localhost:8100/build/polyfills.js:3:15581)
at r.runTask (http://localhost:8100/build/polyfills.js:3:10834)
at o (http://localhost:8100/build/polyfills.js:3:7894)
at e.invokeTask [as invoke] (http://localhost:8100/build/polyfills.js:3:16823)
at p (http://localhost:8100/build/polyfills.js:2:27648)
ONE MORE EDIT: I deleted the DB again, created a new one, changed the connection string in my app and pushed the changes. Now it works normally. I'll check again tomorrow and update this post.
NEW EDIT: One day later, the app doesn't connect to the DB again. And again I get the same error message.
Wtf, Heroku???

Related

PG::connectionBad error in logs for Rails 5 heroku app, is mismatched IPs the reason?

Heroku deleted my rails 5 app's database. I created a new DB, they recovered the old one and copied it to the new one, then attached it. But my site won't load. Heroku support hasn't tried to help beyond giving links to troubleshooting I've done many times. I've been trying every possible fix I can find for a week.
In the error message, I noticed the host that is listed for my database in the settings does not match the host in the timeout error.
MY HOST (per heroku settings): ec2-18-2XX-36-213.compute-1.amazonaws.com
The host in the logs: ec2-5X-83-25-2X7.compute-1.amazonaws.com
(I replaced a couple numbers with X b/c Idk if that's sensitive information)
Is that why the connection won't work? If so, how do I fix it?
FATAL -- : [465fe0b0-f387-4b4a-b215-779dbb8dbf7e] PG::ConnectionBad (connection to server at "ec2-5X-83-25-2X7.compute-1.amazonaws.com" (5X.83.25.2X7), port 5432 failed: Connection timed out
Turns out, all I needed to do was go into my new database's settings, copy the DATABASE_URL, go into the config vars of my app, and paste over the old DATABASE_URL.
So many wasted hours because heroku tech support couldn't articulate that. Took 5 seconds, then site loaded immediately. Didn't need to push anything, commit anything, change any code, etc

After Deploy App is not connecting to postgres anymore

after deploying my changes to heroku my strapi app isn't starting anymore.
[2020-11-10T15:47:29.476Z] debug :no_entry:️ Server wasn't able to start properly.
2020-11-10T15:47:29.479699+00:00 app[web.1]: [2020-11-10T15:47:29.479Z] error error: password authentication failed for user "xxxxxxxxxxxxx"
Checked the ENVs everything looks fine but it is not working.
I saw that postgresql updated my database, since that point it is broken.
heroku-postgresql: Update DATABASE by heroku-postgresql
Today at 4:22 PM · v34
Please help me can´t do anything rn.

Application crashes after "Update DATABASE by heroku-postgresql"

Since yesterday, when heroku-postgresql made an automatic update to the add-on, the application doesn't open anymore. Instead, it crashed with a
"error error: password authentication failed for user "neyzbgqnexgsom"" message that I can see in the Heroku logs tail.
My app was working fine for about 3 months, and it started crashing right after this. How can I make it work back again?
I found out that after that update, the DATABASE_URL config variable has changed. You must populate the Config Vars once again with the new values from the DATABASE_URL.

Heroku Postgres app works on local machine but not on Heroku

I built and deployed a Node.js Postgres app to Heroku and can not get to any of my endpoints via the Heroku site except the root GET route. Curiously, when I run Heroku local web ALL my endpoints behave exactly as they should. I can successfully perform CRUD on the app running via Heroku local web. However, when I try, for instance, to create a user using the Heroku URL, it returns an empty error message. Yet, when I check the associated database I find that the user was indeed created. Other than returning an empty error message when I try to either create a user or sign it, the app correctly responds with the different errors I programmed. For example, when I tweak my login details or try to register the same user I earlier tried to register it correctly says the user already exists!. Still, when I try to log in that same existing user I get a blank error message. Note that I created both the Heroku PostgreSQL database and my local PostgreSQL database from exactly the same queries. Please, can you help me through this bottleneck? I am using Postman to test my APIs.
Test to sign in user on Heroku app running on the local machine: success!
Same exact test with Heroku URL: cryptic error.
Ok, so after a lot of researching and fiddling around I discovered the solution. I did not add keys from my .env file to Heroku as config vars found under the settings tab of the Heroku User dashboard. Manually adding my environment variables resolved the matter. Now my app is working both on my local machine and via the Heroku URL.

Google Cloud SQL: SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'reading initial communication packet', system error: 0

I'm desperate since my Google Cloud SQL instance went down. I could connect to it yesterday without problem but since this morning i'm unable to connect to it in any way, it produces the following error: The database server returned this error: SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'reading initial communication packet', system error: 0
This is what I did to try to fix this:
restart instance
added authorized ip-addresses in CIDR notation
reset root password
restored backup
pinged the ip-address and I get response
All these actions completed but i'm still unable to connect through:
PHP
MySQL workbench
Ubuntu MySQL command line
All without luck. What could I do to repair my Cloud SQL instance. Is anyone else having this problem?
I'm from the Cloud SQL team. We are looking into this issue, it should be resolved soon. See https://groups.google.com/forum/#!topic/google-cloud-sql-announce/SwomB2zuRDo. Updates will be posted on that thread (and if there's anything particularly important I'll edit this post).
The problem seems to only affect connections from outside Google Cloud. Clients connecting from App Engine and Compute Engine should work fine.
Our company has same problem.
We are unable to connect through both MySQL workbench and MySQL command line.
Our Google Appengine application has no problems to connect since its not using external IP.
there.I encountered the same problem.You need to find out your public ip address,for that type "my public ip" in Google.Now click on your Cloud SQL instance that you created,under that click on ACCESS CONTROL tab and then click on Authorization tab under that.Under Authorized network,give any name you want to the network and copy your public ip address in the network.Now save changes and try to run the command from console.It should work fine.