diff --git a/provider/app.js b/provider/app.js
index 2c7ac4b..4408b22 100644
--- a/provider/app.js
+++ b/provider/app.js
@@ -88,7 +88,6 @@
 }
 
 function createTriggerDb () {
-    logger.info('createTriggerDb', 'database url is ' +  dbProtocol + '://' + dbUsername + ':' + dbPassword + '@' + dbHost);
     var nanop = require('nano')(dbProtocol + '://' + dbUsername + ':' + dbPassword + '@' + dbHost);
     if (nanop !== null) {
         return createDatabase (nanop);
diff --git a/provider/lib/constants.js b/provider/lib/constants.js
index 57e6d58..d8f11b8 100644
--- a/provider/lib/constants.js
+++ b/provider/lib/constants.js
@@ -1,6 +1,6 @@
 const TRIGGER_DB_SUFFIX = 'cloudanttrigger';
 const DEFAULT_MAX_TRIGGERS = -1;
-const RETRY_ATTEMPTS = 10;
+const RETRY_ATTEMPTS = 12;
 const RETRY_DELAY = 1000; //in milliseconds
 
 module.exports = {
diff --git a/provider/lib/delete.js b/provider/lib/delete.js
index 1f06da8..ca62359 100644
--- a/provider/lib/delete.js
+++ b/provider/lib/delete.js
@@ -42,10 +42,16 @@
                     });
                 }
                 else {
-                    var info = JSON.parse(body);
+                    var info;
+                    try {
+                        info = JSON.parse(body);
+                    }
+                    catch (e) {
+                        info = 'Authentication request failed with status code ' + response.statusCode;
+                    }
                     res.status(response.statusCode).json({
                         message: errorMsg,
-                        error: info.error
+                        error: typeof info === 'object' ? info.error : info
                     });
                 }
             }
diff --git a/provider/lib/update.js b/provider/lib/update.js
index dd5ad4a..c07c0d4 100644
--- a/provider/lib/update.js
+++ b/provider/lib/update.js
@@ -37,10 +37,16 @@
                     });
                 }
                 else {
-                    var info = JSON.parse(body);
+                    var info;
+                    try {
+                        info = JSON.parse(body);
+                    }
+                    catch (e) {
+                        info = 'Authentication request failed with status code ' + response.statusCode;
+                    }
                     res.status(response.statusCode).json({
                         message: errorMsg,
-                        error: info.error
+                        error: typeof info === 'object' ? info.error : info
                     });
                 }
             }
