user47376
user47376

Reputation: 2273

Cloud Functions for Firebase - getaddrinfo ENOTFOUND

Trying to make a request to Paypal's API using PayPal-node-SDK

exports.requestPayment = functions.https.onRequest((req, res) => {
    return new Promise(function (fullfilled, rejected) {
        paypal.payment.create(create_payment_json, {}, function (error, payment) {
            if (error) {
                rejected(error);
            } else {
                console.log("Create Payment Response");
                console.log(payment);
                res.status(200).send(JSON.stringify({
                    paymentID: payment.id
                })).end();
                fullfilled(payment);
            }
        });
     });
});

but I'm constantly getting an error:

Error: getaddrinfo ENOTFOUND api.sandbox.paypal.com api.sandbox.paypal.com:443
    at errnoException (dns.js:28:10)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)

Things I've tried:

  1. Making a request to a totally different host, still ENOTFOUND
  2. Wrapping the request with cors(req,res, ()=>{...})
  3. Prepending https:// to the host

What is the problem?

Upvotes: 61

Views: 33397

Answers (5)

Sayyam abbasi
Sayyam abbasi

Reputation: 109

I was having this issue because of weak internet, change the internet connection.

Upvotes: 2

kynan
kynan

Reputation: 13643

Switch to the Firebase "Blaze" plan, which includes the free usage tier of the Spark plan before incurring any costs. Use the Blaze pricing calculator to see what you'd be charged for a given usage.

The first 5GB of outbound (egress) networking is free, which is the same as what "native" Google Cloud Functions would give you.

Upvotes: 1

Levi Winans
Levi Winans

Reputation: 39

in my situation I had to wait and let what ever lag was happening pass. Now it's fine again.

Upvotes: 3

EngrEric
EngrEric

Reputation: 4852

You need to include service account to the admin initialization. this fixed the same issue for me

Upvotes: 1

James Daniels
James Daniels

Reputation: 6981

You'll need to be on a paid plan to make external API requests.

Firebase's Blaze plan (pay as you go) has a free allotment for Cloud Functions. https://firebase.google.com/pricing/

Upvotes: 127

Related Questions