Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"Request timeout" H12 Heroku error tying to access MongoDB Atlas

This problem seems to be quite common but I've tried several things and I still get this error.

Alright, so I'm trying to deploy on app on Heroku with my DB on MongoDB Atlas but when I'm trying a register or login POST request I get this message in the Heroku logs :

2020-03-29T09:54:50.197717+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=POST path="/users/register" host=sleepy-beach-03876.herokuapp.com request_id=87810d90-3e72-4ff7-929e-77157f1b4a12 fwd="xxx.xxx.xxx.xxx" dyno=web.1 connect=0ms service=30001ms status=503 bytes=0 protocol=https

What i've tried :

  • Increasing connection timeout time
  • Double check if my IP address is Whitelisted, it is
  • Double check if the URI is correct, it seems correct
  • Using Heroku Config vars

Here's the URI
mongoURI : 'mongodb+srv://xxx:[email protected]/test?retryWrites=true&w=majority'

I've tried this

mongoose.connect(db.mongoURI, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
})
.then(() => console.log(`MongoDB connected... ${db.mongoURI}`))
.catch(err => console.log(err + db.mongoURI));

And this

const MongoClient = require('mongodb').MongoClient;
const uri = "mongodb+srv://xxx:[email protected]/test?retryWrites=true&w=majority";
const client = new MongoClient(uri, { useNewUrlParser: true });
client.connect(err => {
  const collection = client.db("test").collection("users");
  client.close();
});


Please note that it's my first StackOverflow post and one of my first Node projects, so please be understanding and send me some feedbacks if you want to :)

like image 411
FabienT Avatar asked Nov 02 '25 09:11

FabienT


2 Answers

Alright it works, I answer to my own post in case someone is having the same problem.

I just forgot to add Heroku IPs in the whitelist so they can access to the DB...

like image 158
FabienT Avatar answered Nov 05 '25 10:11

FabienT


Don't know how related this is but I was getting the H12 - Request Timeout error. Most likely because my .env variables weren't accessible in Heroku.

In the settings menu for my app I added them in the Config Vars section and now it connects.

like image 45
chebolita1986 Avatar answered Nov 05 '25 09:11

chebolita1986



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!