update Node.js version to 8.14.0 (#188)

diff --git a/Dockerfile b/Dockerfile
index e5e8a21..9a4c6d7 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM node:8.12.0
+FROM node:8.14.0
 
 # only package.json
 ADD package.json /
diff --git a/provider/lib/utils.js b/provider/lib/utils.js
index 9a77999..c863d74 100644
--- a/provider/lib/utils.js
+++ b/provider/lib/utils.js
@@ -242,22 +242,29 @@
                 json: form
             }, function(error, response) {
                 try {
-                    logger.info(method, triggerData.id, 'http post request, STATUS:', response ? response.statusCode : response);
-                    if (error || response.statusCode >= 400) {
+                    var statusCode;
+                    if (!error) {
+                        statusCode = response.statusCode;
+                    }
+                    else if (error.statusCode) {
+                        statusCode = error.statusCode;
+                    }
+                    logger.info(method, triggerData.id, 'http post request, STATUS:', statusCode);
+                    if (error || statusCode >= 400) {
                         // only manage trigger fires if they are not infinite
                         if (triggerData.maxTriggers !== -1) {
                             triggerData.triggersLeft++;
                         }
-                        logger.error(method, 'there was an error invoking', triggerData.id, response ? response.statusCode : error);
-                        if (!error && shouldDisableTrigger(response.statusCode)) {
+                        logger.error(method, 'there was an error invoking', triggerData.id, statusCode || error);
+                        if (!error && shouldDisableTrigger(statusCode)) {
                             //disable trigger
-                            var message = 'Automatically disabled after receiving a ' + response.statusCode + ' status code when firing the trigger';
-                            disableTrigger(triggerData.id, response.statusCode, message);
-                            reject('Disabled trigger ' + triggerData.id + ' due to status code: ' + response.statusCode);
+                            var message = 'Automatically disabled after receiving a ' + statusCode + ' status code when firing the trigger';
+                            disableTrigger(triggerData.id, statusCode, message);
+                            reject('Disabled trigger ' + triggerData.id + ' due to status code: ' + statusCode);
                         }
                         else {
                             if (retryCount < retryAttempts ) {
-                                var timeout = response && response.statusCode === 429 && retryCount === 0 ? 60000 : 1000 * Math.pow(retryCount + 1, 2);
+                                var timeout = statusCode === 429 && retryCount === 0 ? 60000 : 1000 * Math.pow(retryCount + 1, 2);
                                 logger.info(method, 'attempting to fire trigger again', triggerData.id, 'Retry Count:', (retryCount + 1));
                                 setTimeout(function () {
                                     postTrigger(triggerData, form, uri, (retryCount + 1))