Avoid that trigger is fired too often if Request to OpenWhisk is too slow. (#83)

diff --git a/provider/lib/utils.js b/provider/lib/utils.js
index 847b4cf..02b3718 100644
--- a/provider/lib/utils.js
+++ b/provider/lib/utils.js
@@ -98,6 +98,11 @@
 
         return new Promise(function(resolve, reject) {
 
+            // only manage trigger fires if they are not infinite
+            if (dataTrigger.maxTriggers !== -1) {
+                dataTrigger.triggersLeft--;
+            }
+
             request({
                 method: 'post',
                 uri: uri,
@@ -112,6 +117,10 @@
                     logger.info(method, triggerIdentifier, 'http post request, STATUS:', response ? response.statusCode : response);
 
                     if (error || response.statusCode >= 400) {
+                        // only manage trigger fires if they are not infinite
+                        if (dataTrigger.maxTriggers !== -1) {
+                            dataTrigger.triggersLeft++;
+                        }
                         logger.error(method, 'there was an error invoking', triggerIdentifier, response ? response.statusCode : error);
                         if (!error && utils.shouldDisableTrigger(response.statusCode)) {
                             //disable trigger
@@ -136,10 +145,6 @@
                             }
                         }
                     } else {
-                        // only manage trigger fires if they are not infinite
-                        if (dataTrigger.maxTriggers !== -1) {
-                            dataTrigger.triggersLeft--;
-                        }
                         logger.info(method, 'fired', triggerIdentifier, dataTrigger.triggersLeft, 'triggers left');
                         resolve(triggerIdentifier);
                     }