Handle db connection error during follow (#119)

diff --git a/provider/lib/utils.js b/provider/lib/utils.js
index 06d9d4d..38d9c1f 100644
--- a/provider/lib/utils.js
+++ b/provider/lib/utils.js
@@ -309,34 +309,49 @@
     this.setupFollow = function(seq) {
         var method = 'setupFollow';
 
-        var feed = triggerDB.follow({ since: seq, include_docs: true, filter: ddname + '/' + filter, query_params: { worker: utils.worker } });
+        try {
+            var feed = triggerDB.follow({
+                since: seq,
+                include_docs: true,
+                filter: ddname + '/' + filter,
+                query_params: {worker: utils.worker}
+            });
 
-        feed.on('change', (change) => {
-            var triggerIdentifier = change.id;
-            var doc = change.doc;
+            feed.on('change', (change) => {
+                var triggerIdentifier = change.id;
+                var doc = change.doc;
 
-            logger.info(method, 'got change for trigger', triggerIdentifier);
+                logger.info(method, 'got change for trigger', triggerIdentifier);
 
-            if (utils.triggers[triggerIdentifier]) {
-                if (doc.status && doc.status.active === false) {
-                    utils.deleteTrigger(triggerIdentifier);
+                if (utils.triggers[triggerIdentifier]) {
+                    if (doc.status && doc.status.active === false) {
+                        utils.deleteTrigger(triggerIdentifier);
+                    }
                 }
-            }
-            else {
-                //ignore changes to disabled triggers
-                if (!doc.status || doc.status.active === true) {
-                    utils.createTrigger(utils.initTrigger(doc))
-                    .then(triggerIdentifier => {
-                        logger.info(method, triggerIdentifier, 'created successfully');
-                    }).catch(err => {
-                        var message = 'Automatically disabled after receiving exception on create trigger: ' + err;
-                        utils.disableTrigger(triggerIdentifier, undefined, message);
-                        logger.error(method, 'Disabled trigger', triggerIdentifier, 'due to exception:', err);
-                    });
+                else {
+                    //ignore changes to disabled triggers
+                    if (!doc.status || doc.status.active === true) {
+                        utils.createTrigger(utils.initTrigger(doc))
+                        .then(triggerIdentifier => {
+                            logger.info(method, triggerIdentifier, 'created successfully');
+                        }).catch(err => {
+                            var message = 'Automatically disabled after receiving exception on create trigger: ' + err;
+                            utils.disableTrigger(triggerIdentifier, undefined, message);
+                            logger.error(method, 'Disabled trigger', triggerIdentifier, 'due to exception:', err);
+                        });
+                    }
                 }
-            }
-        });
-        feed.follow();
+            });
+
+            feed.on('error', function (err) {
+                logger.error(method, err);
+            });
+
+            feed.follow();
+        }
+        catch (err) {
+            logger.error(method, err);
+        }
     };
 
     this.authorize = function(req, res, next) {
@@ -423,11 +438,11 @@
                 redisClient.hgetAsync(utils.redisHash, utils.redisKey)
                 .then(activeHost => {
                     return utils.initActiveHost(activeHost);
-                    })
-                    .then(resolve)
-                    .catch(err => {
-                        reject(err);
-                    });
+                })
+                .then(resolve)
+                .catch(err => {
+                    reject(err);
+                });
             }
             else {
                 resolve();