removing references to whisk object
diff --git a/actions/account-actions/create-database.js b/actions/account-actions/create-database.js
index eeda689..96dd970 100755
--- a/actions/account-actions/create-database.js
+++ b/actions/account-actions/create-database.js
@@ -6,13 +6,13 @@
 function main(message) {
   var cloudantOrError = getCloudantAccount(message);
   if (typeof cloudantOrError !== 'object') {
-    return whisk.error('getCloudantAccount returned an unexpected object type.');
+    return Promise.reject(cloudantOrError);
   }
 
   var cloudant = cloudantOrError;
   var dbName = message.dbname;
   if (!dbName) {
-    return whisk.error('dbname is required.');
+    return Promise.reject('dbname is required.');
   }
 
   var promise = createDatabase(cloudant, dbName);
@@ -44,16 +44,13 @@
     cloudantUrl = message.url;
   } else {
     if (!message.host) {
-      whisk.error('cloudant account host is required.');
-      return;
+      return 'cloudant account host is required.';
     }
     if (!message.username) {
-      whisk.error('cloudant account username is required.');
-      return;
+      return 'cloudant account username is required.';
     }
     if (!message.password) {
-      whisk.error('cloudant account password is required.');
-      return;
+      return 'cloudant account password is required.';
     }
 
     cloudantUrl = "https://" + message.username + ":" + message.password + "@" + message.host;
diff --git a/actions/account-actions/delete-database.js b/actions/account-actions/delete-database.js
index f4e414f..37a0fb4 100755
--- a/actions/account-actions/delete-database.js
+++ b/actions/account-actions/delete-database.js
@@ -6,13 +6,13 @@
 function main(message) {
   var cloudantOrError = getCloudantAccount(message);
   if (typeof cloudantOrError !== 'object') {
-    return whisk.error('getCloudantAccount returned an unexpected object type.');
+    return Promise.reject(cloudantOrError);
   }
 
   var cloudant = cloudantOrError;
   var dbName = message.dbname;
   if (!dbName) {
-    return whisk.error('dbname is required.');
+    return Promise.reject('dbname is required.');
   }
 
   return destroyDatabase(cloudant, dbName);
@@ -42,16 +42,13 @@
     cloudantUrl = message.url;
   } else {
     if (!message.host) {
-      whisk.error('cloudant account host is required.');
-      return;
+      return 'cloudant account host is required.';
     }
     if (!message.username) {
-      whisk.error('cloudant account username is required.');
-      return;
+      return 'cloudant account username is required.';
     }
     if (!message.password) {
-      whisk.error('cloudant account password is required.');
-      return;
+      return 'cloudant account password is required.';
     }
 
     cloudantUrl = "https://" + message.username + ":" + message.password + "@" + message.host;
diff --git a/actions/account-actions/list-all-databases.js b/actions/account-actions/list-all-databases.js
index da44b1d..3f0b19c 100755
--- a/actions/account-actions/list-all-databases.js
+++ b/actions/account-actions/list-all-databases.js
@@ -6,7 +6,7 @@
 function main(message) {
   var cloudantOrError = getCloudantAccount(message);
   if (typeof cloudantOrError !== 'object') {
-    return whisk.error('getCloudantAccount returned an unexpected object type.');
+    return Promise.reject(cloudantOrError);
   }
   var cloudant = cloudantOrError;
 
@@ -18,7 +18,7 @@
     cloudant.db.list(function(error, response) {
       if (!error) {
         console.log('success', response);
-        //Response is an array and only JSON objects can be passed to whisk.done
+        //Response is an array and only JSON objects can be passed
         var responseObj = {};
         responseObj.all_databases = response;
         resolve(responseObj);
@@ -40,16 +40,13 @@
     cloudantUrl = message.url;
   } else {
     if (!message.host) {
-      whisk.error('cloudant account host is required.');
-      return;
+      return 'cloudant account host is required.';
     }
     if (!message.username) {
-      whisk.error('cloudant account username is required.');
-      return;
+      return 'cloudant account username is required.';
     }
     if (!message.password) {
-      whisk.error('cloudant account password is required.');
-      return;
+      return 'cloudant account password is required.';
     }
 
     cloudantUrl = "https://" + message.username + ":" + message.password + "@" + message.host;
diff --git a/actions/account-actions/read-database.js b/actions/account-actions/read-database.js
index 6744c97..fb8cd48 100755
--- a/actions/account-actions/read-database.js
+++ b/actions/account-actions/read-database.js
@@ -6,12 +6,12 @@
 function main(message) {
   var cloudantOrError = getCloudantAccount(message);
   if (typeof cloudantOrError !== 'object') {
-    return whisk.error('getCloudantAccount returned an unexpected object type.');
+    return Promise.reject(cloudantOrError);
   }
   var cloudant = cloudantOrError;
   var dbName = message.dbname;
   if (!dbName) {
-    return whisk.error('dbname is required.');
+    return Promise.reject('dbname is required.');
   }
 
   return readDatabase(cloudant, dbName);
@@ -41,16 +41,13 @@
     cloudantUrl = message.url;
   } else {
     if (!message.host) {
-      whisk.error('cloudant account host is required.');
-      return;
+      return 'cloudant account host is required.';
     }
     if (!message.username) {
-      whisk.error('cloudant account username is required.');
-      return;
+      return 'cloudant account username is required.';
     }
     if (!message.password) {
-      whisk.error('cloudant account password is required.');
-      return;
+      return 'cloudant account password is required.';
     }
 
     cloudantUrl = "https://" + message.username + ":" + message.password + "@" + message.host;
diff --git a/actions/account-actions/read-updates-feed.js b/actions/account-actions/read-updates-feed.js
index 24ad092..e7f48f7 100755
--- a/actions/account-actions/read-updates-feed.js
+++ b/actions/account-actions/read-updates-feed.js
@@ -6,7 +6,7 @@
 function main(message) {
   var cloudantOrError = getCloudantAccount(message);
   if (typeof cloudantOrError !== 'object') {
-    return whisk.error('getCloudantAccount returned an unexpected object type.');
+    return Promise.reject(cloudantOrError);
   }
   var cloudant = cloudantOrError;
   var params = {};
@@ -17,7 +17,7 @@
     try {
       params = JSON.parse(message.params);
     } catch (e) {
-      return whisk.error('params field cannot be parsed. Ensure it is valid JSON.');
+      return Promise.reject('params field cannot be parsed. Ensure it is valid JSON.');
     }
   }
 
@@ -48,16 +48,13 @@
     cloudantUrl = message.url;
   } else {
     if (!message.host) {
-      whisk.error('cloudant account host is required.');
-      return;
+      return 'cloudant account host is required.';
     }
     if (!message.username) {
-      whisk.error('cloudant account username is required.');
-      return;
+      return 'cloudant account username is required.';
     }
     if (!message.password) {
-      whisk.error('cloudant account password is required.');
-      return;
+      return 'cloudant account password is required.';
     }
 
     cloudantUrl = "https://" + message.username + ":" + message.password + "@" + message.host;
diff --git a/actions/changes.js b/actions/changes.js
index e50f6fa..5301a73 100644
--- a/actions/changes.js
+++ b/actions/changes.js
@@ -25,36 +25,23 @@
     if (lifecycleEvent === 'CREATE') {
 
     	// check for parameter errors
-        var paramError;
         if (msg.includeDoc) {
-            paramError = 'cloudant trigger feed: includeDoc parameter is no longer supported';
-            console.log(paramError, '[error:]', whisk.error(paramError));
-            return;
+            return Promise.reject('cloudant trigger feed: includeDoc parameter is no longer supported');
         }
         if (!dbname) {
-        	paramError = 'cloudant trigger feed: missing dbname parameter - ' + dbname;
-            console.log(paramError, '[error:]', whisk.error(paramError));
-            return;
+        	return Promise.reject('cloudant trigger feed: missing dbname parameter - ' + dbname);
         }
         if (!host) {
-        	paramError = 'cloudant trigger feed: missing host parameter - ' + host;
-            console.log(paramError, '[error:]', whisk.error(paramError));
-            return;
+        	return Promise.reject('cloudant trigger feed: missing host parameter - ' + host);
         }
         if (!user) {
-        	paramError = 'cloudant trigger feed: missing username parameter - ' + user;
-            console.log(paramError, '[error:]', whisk.error(paramError));
-            return;
+        	return Promise.reject('cloudant trigger feed: missing username parameter - ' + user);
         }
         if (!pass) {
-        	paramError = 'cloudant trigger feed: missing password parameter - ' + pass;
-            console.log(paramError, '[error:]', whisk.error(paramError));
-            return;
+        	return Promise.reject('cloudant trigger feed: missing password parameter - ' + pass);
         }
         if (namespace === "_") {
-            paramError = 'You must supply a non-default namespace.';
-            console.log(paramError, '[error:]', whisk.error(paramError));
-            return;
+            return Promise.reject('You must supply a non-default namespace.');
         }
 
         // auth key for trigger
@@ -81,7 +68,7 @@
 
         return cloudantHelper(provider_endpoint, 'delete', replaceNameTrigger, jsonOptions);
     } else {
-    	return whisk.error('operation is neither CREATE or DELETE');
+    	return Promise.reject('operation is neither CREATE or DELETE');
     }
 }
 
diff --git a/actions/database-actions/create-document.js b/actions/database-actions/create-document.js
index 9de6c85..a935790 100755
--- a/actions/database-actions/create-document.js
+++ b/actions/database-actions/create-document.js
@@ -6,7 +6,7 @@
 function main(message) {
   var cloudantOrError = getCloudantAccount(message);
   if (typeof cloudantOrError !== 'object') {
-    return whisk.error('getCloudantAccount returned an unexpected object type.');
+    return Promise.reject(cloudantOrError);
   }
   var cloudant = cloudantOrError;
   var dbName = message.dbname;
@@ -14,10 +14,10 @@
   var params = {};
 
   if(!dbName) {
-    return whisk.error('dbname is required.');
+    return Promise.reject('dbname is required.');
   }
   if(!doc) {
-    return whisk.error('doc is required.');
+    return Promise.reject('doc is required.');
   }
 
   if (typeof message.doc === 'object') {
@@ -26,10 +26,10 @@
     try {
       doc = JSON.parse(message.doc);
     } catch (e) {
-      return whisk.error('doc field cannot be parsed. Ensure it is valid JSON.');
+      return Promise.reject('doc field cannot be parsed. Ensure it is valid JSON.');
     }
   } else {
-    return whisk.error('doc field is ' + (typeof doc) + ' and should be an object or a JSON string.');
+    return Promise.reject('doc field is ' + (typeof doc) + ' and should be an object or a JSON string.');
   }
   var cloudantDb = cloudant.use(dbName);
 
@@ -39,7 +39,7 @@
     try {
       params = JSON.parse(message.params);
     } catch (e) {
-      return whisk.error('params field cannot be parsed. Ensure it is valid JSON.');
+      return Promise.reject('params field cannot be parsed. Ensure it is valid JSON.');
     }
   }
 
@@ -73,16 +73,13 @@
     cloudantUrl = message.url;
   } else {
     if (!message.host) {
-      whisk.error('cloudant account host is required.');
-      return;
+      return 'cloudant account host is required.';
     }
     if (!message.username) {
-      whisk.error('cloudant account username is required.');
-      return;
+      return 'cloudant account username is required.';
     }
     if (!message.password) {
-      whisk.error('cloudant account password is required.');
-      return;
+      return 'cloudant account password is required.';
     }
 
     cloudantUrl = "https://" + message.username + ":" + message.password + "@" + message.host;
diff --git a/actions/database-actions/create-query-index.js b/actions/database-actions/create-query-index.js
index 2507e6b..1bcec17 100755
--- a/actions/database-actions/create-query-index.js
+++ b/actions/database-actions/create-query-index.js
@@ -6,17 +6,17 @@
 function main(message) {
   var cloudantOrError = getCloudantAccount(message);
   if (typeof cloudantOrError !== 'object') {
-    return whisk.error('getCloudantAccount returned an unexpected object type.');
+    return Promise.reject(cloudantOrError);
   }
   var cloudant = cloudantOrError;
   var dbName = message.dbname;
   var index = message.index;
 
   if(!dbName) {
-    return whisk.error('dbname is required.');
+    return Promise.reject('dbname is required.');
   }
   if(!index) {
-    return whisk.error('index is required.');
+    return Promise.reject('index is required.');
   }
   var cloudantDb = cloudant.use(dbName);
 
@@ -26,7 +26,7 @@
     try {
       params = JSON.parse(message.params);
     } catch (e) {
-      return whisk.error('params field cannot be parsed. Ensure it is valid JSON.');
+      return Promise.reject('params field cannot be parsed. Ensure it is valid JSON.');
     }
   }
 
@@ -57,16 +57,13 @@
     cloudantUrl = message.url;
   } else {
     if (!message.host) {
-      whisk.error('cloudant account host is required.');
-      return;
+      return 'cloudant account host is required.';
     }
     if (!message.username) {
-      whisk.error('cloudant account username is required.');
-      return;
+      return 'cloudant account username is required.';
     }
     if (!message.password) {
-      whisk.error('cloudant account password is required.');
-      return;
+      return 'cloudant account password is required.';
     }
 
     cloudantUrl = "https://" + message.username + ":" + message.password + "@" + message.host;
diff --git a/actions/database-actions/create-update-attachment.js b/actions/database-actions/create-update-attachment.js
index de9e110..54e0ff6 100755
--- a/actions/database-actions/create-update-attachment.js
+++ b/actions/database-actions/create-update-attachment.js
@@ -6,7 +6,7 @@
 function main(message) {
   var cloudantOrError = getCloudantAccount(message);
   if (typeof cloudantOrError !== 'object') {
-    return whisk.error('getCloudantAccount returned an unexpected object type.');
+    return Promise.reject(cloudantOrError);
   }
   var cloudant = cloudantOrError;
   var dbName = message.dbname;
@@ -17,19 +17,19 @@
   var params = {};
 
   if(!dbName) {
-    return whisk.error('dbname is required.');
+    return Promise.reject('dbname is required.');
   }
   if(!docId) {
-    return whisk.error('docid is required.');
+    return Promise.reject('docid is required.');
   }
   if(!attName) {
-    return whisk.error('attachmentname is required.');
+    return Promise.reject('attachmentname is required.');
   }
   if(!att) {
-    return whisk.error('attachment is required.');
+    return Promise.reject('attachment is required.');
   }
   if(!contentType) {
-    return whisk.error('contenttype is required.');
+    return Promise.reject('contenttype is required.');
   }
   //Add document revision to query if it exists
   if(typeof message.docrev !== 'undefined') {
@@ -43,7 +43,7 @@
     try {
       params = JSON.parse(message.params);
     } catch (e) {
-      return whisk.error('params field cannot be parsed. Ensure it is valid JSON.');
+      return Promise.reject('params field cannot be parsed. Ensure it is valid JSON.');
     }
   }
 
@@ -60,7 +60,7 @@
         console.log("success", response);
         resolve(response);
       } else {
-        console.log("error", error)
+        console.log("error", error);
         reject(error);
       }
     });
@@ -77,16 +77,13 @@
     cloudantUrl = message.url;
   } else {
     if (!message.host) {
-      whisk.error('cloudant account host is required.');
-      return;
+      return 'cloudant account host is required.';
     }
     if (!message.username) {
-      whisk.error('cloudant account username is required.');
-      return;
+      return 'cloudant account username is required.';
     }
     if (!message.password) {
-      whisk.error('cloudant account password is required.');
-      return;
+      return 'cloudant account password is required.';
     }
 
     cloudantUrl = "https://" + message.username + ":" + message.password + "@" + message.host;
diff --git a/actions/database-actions/delete-attachment.js b/actions/database-actions/delete-attachment.js
index dacb951..767b22c 100755
--- a/actions/database-actions/delete-attachment.js
+++ b/actions/database-actions/delete-attachment.js
@@ -6,7 +6,7 @@
 function main(message) {
   var cloudantOrError = getCloudantAccount(message);
   if (typeof cloudantOrError !== 'object') {
-    return whisk.error('getCloudantAccount returned an unexpected object type.');
+    return Promise.reject(cloudantOrError);
   }
   var cloudant = cloudantOrError;
   var dbName = message.dbname;
@@ -15,19 +15,19 @@
   var params = {};
 
   if(!dbName) {
-    return whisk.error('dbname is required.');
+    return Promise.reject('dbname is required.');
   }
   if(!docId) {
-    return whisk.error('docid is required.');
+    return Promise.reject('docid is required.');
   }
   if(!attName) {
-    return whisk.error('attachmentname is required.');
+    return Promise.reject('attachmentname is required.');
   }
   //Add document revision to query if it exists
   if(typeof message.docrev !== 'undefined') {
     params.rev = message.docrev;
   } else {
-    return whisk.error('docrev is required.');
+    return Promise.reject('docrev is required.');
   }
 
   var cloudantDb = cloudant.use(dbName);
@@ -38,7 +38,7 @@
     try {
       params = JSON.parse(message.params);
     } catch (e) {
-      return whisk.error('params field cannot be parsed. Ensure it is valid JSON.');
+      return Promise.reject('params field cannot be parsed. Ensure it is valid JSON.');
     }
   }
 
@@ -55,7 +55,7 @@
         console.log("success", response);
         resolve(response);
       } else {
-        console.log("error", error)
+        console.log("error", error);
         reject(error);
       }
     });
@@ -72,16 +72,13 @@
     cloudantUrl = message.url;
   } else {
     if (!message.host) {
-      whisk.error('cloudant account host is required.');
-      return;
+      return 'cloudant account host is required.';
     }
     if (!message.username) {
-      whisk.error('cloudant account username is required.');
-      return;
+      return 'cloudant account username is required.';
     }
     if (!message.password) {
-      whisk.error('cloudant account password is required.');
-      return;
+      return 'cloudant account password is required.';
     }
 
     cloudantUrl = "https://" + message.username + ":" + message.password + "@" + message.host;
diff --git a/actions/database-actions/delete-document.js b/actions/database-actions/delete-document.js
index 7448e65..1204b3f 100755
--- a/actions/database-actions/delete-document.js
+++ b/actions/database-actions/delete-document.js
@@ -6,7 +6,7 @@
 function main(message) {
   var cloudantOrError = getCloudantAccount(message);
   if (typeof cloudantOrError !== 'object') {
-    return whisk.error('getCloudantAccount returned an unexpected object type.');
+    return Promise.reject(cloudantOrError);
   }
   var cloudant = cloudantOrError;
   var dbName = message.dbname;
@@ -14,13 +14,13 @@
   var docRev = message.docrev;
 
   if(!dbName) {
-    return whisk.error('dbname is required.');
+    return Promise.reject('dbname is required.');
   }
   if(!docId) {
-    return whisk.error('docid is required.');
+    return Promise.reject('docid is required.');
   }
   if(!docRev) {
-    return whisk.error('docrev is required.');
+    return Promise.reject('docrev is required.');
   }
   var cloudantDb = cloudant.use(dbName);
 
@@ -55,16 +55,13 @@
     cloudantUrl = message.url;
   } else {
     if (!message.host) {
-      whisk.error('cloudant account host is required.');
-      return;
+      return 'cloudant account host is required.';
     }
     if (!message.username) {
-      whisk.error('cloudant account username is required.');
-      return;
+      return 'cloudant account username is required.';
     }
     if (!message.password) {
-      whisk.error('cloudant account password is required.');
-      return;
+      return 'cloudant account password is required.';
     }
 
     cloudantUrl = "https://" + message.username + ":" + message.password + "@" + message.host;
diff --git a/actions/database-actions/delete-query-index.js b/actions/database-actions/delete-query-index.js
index 522be2e..bd95c79 100755
--- a/actions/database-actions/delete-query-index.js
+++ b/actions/database-actions/delete-query-index.js
@@ -8,7 +8,7 @@
 function main(message) {
   var cloudantOrError = getCloudantAccount(message);
   if (typeof cloudantOrError !== 'object') {
-    return whisk.error('getCloudantAccount returned an unexpected object type.');
+    return Promise.reject(cloudantOrError);
   }
   var cloudant = cloudantOrError;
   var dbName = message.dbname;
@@ -17,16 +17,16 @@
   var indexType = message.indextype;
 
   if(!dbName) {
-    return whisk.error('dbname is required.');
+    return Promise.reject('dbname is required.');
   }
   if(!docId) {
-    return whisk.error('docid is required.');
+    return Promise.reject('docid is required.');
   }
   if(!indexName) {
-    return whisk.error('indexname is required.');
+    return Promise.reject('indexname is required.');
   }
   if(!indexType) {
-    return whisk.error('indextype is required.');
+    return Promise.reject('indextype is required.');
   }
 
   return deleteIndexFromDesignDoc(cloudant, docId, indexName, indexType, dbName);
@@ -65,16 +65,13 @@
     cloudantUrl = message.url;
   } else {
     if (!message.host) {
-      whisk.error('cloudant account host is required.');
-      return;
+      return 'cloudant account host is required.';
     }
     if (!message.username) {
-      whisk.error('cloudant account username is required.');
-      return;
+      return 'cloudant account username is required.';
     }
     if (!message.password) {
-      whisk.error('cloudant account password is required.');
-      return;
+      return 'cloudant account password is required.';
     }
 
     cloudantUrl = "https://" + message.username + ":" + message.password + "@" + message.host;
diff --git a/actions/database-actions/delete-view.js b/actions/database-actions/delete-view.js
index ae018be..5a5b387 100755
--- a/actions/database-actions/delete-view.js
+++ b/actions/database-actions/delete-view.js
@@ -8,7 +8,7 @@
 function main(message) {
   var cloudantOrError = getCloudantAccount(message);
   if (typeof cloudantOrError !== 'object') {
-    return whisk.error('getCloudantAccount returned an unexpected object type.');
+    return Promise.reject(cloudantOrError);
   }
   var cloudant = cloudantOrError;
   var dbName = message.dbname;
@@ -17,15 +17,15 @@
   var params = {};
 
   if(!dbName) {
-    return whisk.error('dbname is required.');
+    return Promise.reject('dbname is required.');
   }
   if(!docId) {
-    return whisk.error('docid is required.');
+    return Promise.reject('docid is required.');
   }
   var cloudantDb = cloudant.use(dbName);
 
   if(!viewName) {
-    return whisk.error('viewname is required.');
+    return Promise.reject('viewname is required.');
   }
   if (typeof message.params === 'object') {
     params = message.params;
@@ -33,7 +33,7 @@
     try {
       params = JSON.parse(message.params);
     } catch (e) {
-      return whisk.error('params field cannot be parsed. Ensure it is valid JSON.');
+      return Promise.reject('params field cannot be parsed. Ensure it is valid JSON.');
     }
   }
 
@@ -77,7 +77,7 @@
         console.log('success', response);
         resolve(response);
       } else {
-        console.log('error', error)
+        console.log('error', error);
         reject(error);
       }
     });
@@ -94,16 +94,13 @@
     cloudantUrl = message.url;
   } else {
     if (!message.host) {
-      whisk.error('cloudant account host is required.');
-      return;
+      return 'cloudant account host is required.';
     }
     if (!message.username) {
-      whisk.error('cloudant account username is required.');
-      return;
+      return 'cloudant account username is required.';
     }
     if (!message.password) {
-      whisk.error('cloudant account password is required.');
-      return;
+      return 'cloudant account password is required.';
     }
 
     cloudantUrl = "https://" + message.username + ":" + message.password + "@" + message.host;
diff --git a/actions/database-actions/exec-query-find.js b/actions/database-actions/exec-query-find.js
index 2c85b1e..8038bd0 100755
--- a/actions/database-actions/exec-query-find.js
+++ b/actions/database-actions/exec-query-find.js
@@ -6,17 +6,17 @@
 function main(message) {
   var cloudantOrError = getCloudantAccount(message);
   if (typeof cloudantOrError !== 'object') {
-    return whisk.error('getCloudantAccount returned an unexpected object type.');
+    return Promise.reject(cloudantOrError);
   }
   var cloudant = cloudantOrError;
   var dbName = message.dbname;
   var query = message.query;
 
   if(!dbName) {
-    return whisk.error('dbname is required.');
+    return Promise.reject('dbname is required.');
   }
   if(!query) {
-    return whisk.error('query field is required.');
+    return Promise.reject('query field is required.');
   }
   var cloudantDb = cloudant.use(dbName);
 
@@ -26,10 +26,10 @@
     try {
       query = JSON.parse(message.query);
     } catch (e) {
-      return whisk.error('query field cannot be parsed. Ensure it is valid JSON.');
+      return Promise.reject('query field cannot be parsed. Ensure it is valid JSON.');
     }
   } else {
-    return whisk.error('query field is ' + (typeof query) + ' and should be an object or a JSON string.');
+    return Promise.reject('query field is ' + (typeof query) + ' and should be an object or a JSON string.');
   }
 
   return queryIndex(cloudantDb, query);
@@ -60,16 +60,13 @@
     cloudantUrl = message.url;
   } else {
     if (!message.host) {
-      whisk.error('cloudant account host is required.');
-      return;
+      return 'cloudant account host is required.';
     }
     if (!message.username) {
-      whisk.error('cloudant account username is required.');
-      return;
+      return 'cloudant account username is required.';
     }
     if (!message.password) {
-      whisk.error('cloudant account password is required.');
-      return;
+      return 'cloudant account password is required.';
     }
 
     cloudantUrl = "https://" + message.username + ":" + message.password + "@" + message.host;
diff --git a/actions/database-actions/exec-query-search.js b/actions/database-actions/exec-query-search.js
index 75d4f92..ce9cea0 100755
--- a/actions/database-actions/exec-query-search.js
+++ b/actions/database-actions/exec-query-search.js
@@ -6,7 +6,7 @@
 function main(message) {
   var cloudantOrError = getCloudantAccount(message);
   if (typeof cloudantOrError !== 'object') {
-    return whisk.error('getCloudantAccount returned an unexpected object type.');
+    return Promise.reject(cloudantOrError);
   }
   var cloudant = cloudantOrError;
   var dbName = message.dbname;
@@ -15,16 +15,16 @@
   var search = message.search;
 
   if(!dbName) {
-    return whisk.error('dbname is required.');
+    return Promise.reject('dbname is required.');
   }
   if(!docId) {
-    return whisk.error('docid is required.');
+    return Promise.reject('docid is required.');
   }
   if(!indexName) {
-    return whisk.error('indexname is required.');
+    return Promise.reject('indexname is required.');
   }
   if(!search) {
-    return whisk.error('search query is required.');
+    return Promise.reject('search query is required.');
   }
   var cloudantDb = cloudant.use(dbName);
 
@@ -35,10 +35,10 @@
     try {
       search = JSON.parse(message.search);
     } catch (e) {
-      return whisk.error('search field cannot be parsed. Ensure it is valid JSON.');
+      return Promise.reject('search field cannot be parsed. Ensure it is valid JSON.');
     }
   } else {
-    return whisk.error('search field is ' + (typeof search) + ' and should be an object or a JSON string.');
+    return Promise.reject('search field is ' + (typeof search) + ' and should be an object or a JSON string.');
   }
 
   return querySearch(cloudantDb, docId, indexName, search);
@@ -68,16 +68,13 @@
     cloudantUrl = message.url;
   } else {
     if (!message.host) {
-      whisk.error('cloudant account host is required.');
-      return;
+      return 'cloudant account host is required.';
     }
     if (!message.username) {
-      whisk.error('cloudant account username is required.');
-      return;
+      return 'cloudant account username is required.';
     }
     if (!message.password) {
-      whisk.error('cloudant account password is required.');
-      return;
+      return 'cloudant account password is required.';
     }
 
     cloudantUrl = "https://" + message.username + ":" + message.password + "@" + message.host;
diff --git a/actions/database-actions/exec-query-view.js b/actions/database-actions/exec-query-view.js
index dc1a611..f719310 100755
--- a/actions/database-actions/exec-query-view.js
+++ b/actions/database-actions/exec-query-view.js
@@ -6,7 +6,7 @@
 function main(message) {
   var cloudantOrError = getCloudantAccount(message);
   if (typeof cloudantOrError !== 'object') {
-    return whisk.error('getCloudantAccount returned an unexpected object type.');
+    return Promise.reject(cloudantOrError);
   }
   var cloudant = cloudantOrError;
   var dbName = message.dbname;
@@ -15,13 +15,13 @@
   var params = {};
 
   if(!dbName) {
-    return whisk.error('dbname is required.');
+    return Promise.reject('dbname is required.');
   }
   if(!docId) {
-    return whisk.error('docid is required.');
+    return Promise.reject('docid is required.');
   }
   if(!viewName) {
-    return whisk.error('viewname is required.');
+    return Promise.reject('viewname is required.');
   }
   var cloudantDb = cloudant.use(dbName);
 
@@ -31,7 +31,7 @@
     try {
       params = JSON.parse(message.params);
     } catch (e) {
-      return whisk.error('params field cannot be parsed. Ensure it is valid JSON.');
+      return Promise.reject('params field cannot be parsed. Ensure it is valid JSON.');
     }
   }
 
@@ -65,16 +65,13 @@
     cloudantUrl = message.url;
   } else {
     if (!message.host) {
-      whisk.error('cloudant account host is required.');
-      return;
+      return 'cloudant account host is required.';
     }
     if (!message.username) {
-      whisk.error('cloudant account username is required.');
-      return;
+      return 'cloudant account username is required.';
     }
     if (!message.password) {
-      whisk.error('cloudant account password is required.');
-      return;
+      return 'cloudant account password is required.';
     }
 
     cloudantUrl = "https://" + message.username + ":" + message.password + "@" + message.host;
diff --git a/actions/database-actions/list-design-documents.js b/actions/database-actions/list-design-documents.js
index 8cd60eb..c5a2741 100755
--- a/actions/database-actions/list-design-documents.js
+++ b/actions/database-actions/list-design-documents.js
@@ -6,7 +6,7 @@
 function main(message) {
   var cloudantOrError = getCloudantAccount(message);
   if (typeof cloudantOrError !== 'object') {
-    return whisk.error('getCloudantAccount returned an unexpected object type.');
+    return Promise.reject(cloudantOrError);
   }
   var cloudant = cloudantOrError;
   var dbName = message.dbname;
@@ -14,7 +14,7 @@
   var params = {};
 
   if(!dbName) {
-    return whisk.error('dbname is required.');
+    return Promise.reject('dbname is required.');
   }
   var cloudantDb = cloudant.use(dbName);
   //Add start and end key to get _design docs
@@ -58,16 +58,13 @@
     cloudantUrl = message.url;
   } else {
     if (!message.host) {
-      whisk.error('cloudant account host is required.');
-      return;
+      return 'cloudant account host is required.';
     }
     if (!message.username) {
-      whisk.error('cloudant account username is required.');
-      return;
+      return 'cloudant account username is required.';
     }
     if (!message.password) {
-      whisk.error('cloudant account password is required.');
-      return;
+      return 'cloudant account password is required.';
     }
 
     cloudantUrl = "https://" + message.username + ":" + message.password + "@" + message.host;
diff --git a/actions/database-actions/list-documents.js b/actions/database-actions/list-documents.js
index 1a576de..6f7401b 100755
--- a/actions/database-actions/list-documents.js
+++ b/actions/database-actions/list-documents.js
@@ -6,14 +6,14 @@
 function main(message) {
   var cloudantOrError = getCloudantAccount(message);
   if (typeof cloudantOrError !== 'object') {
-    return whisk.error('getCloudantAccount returned an unexpected object type.');
+    return Promise.reject(cloudantOrError);
   }
   var cloudant = cloudantOrError;
   var dbName = message.dbname;
   var params = {};
 
   if(!dbName) {
-    return whisk.error('dbname is required.');
+    return Promise.reject('dbname is required.');
   }
   var cloudantDb = cloudant.use(dbName);
 
@@ -23,7 +23,7 @@
     try {
       params = JSON.parse(message.params);
     } catch (e) {
-      return whisk.error('params field cannot be parsed. Ensure it is valid JSON.');
+      return Promise.reject('params field cannot be parsed. Ensure it is valid JSON.');
     }
   }
 
@@ -57,16 +57,13 @@
     cloudantUrl = message.url;
   } else {
     if (!message.host) {
-      whisk.error('cloudant account host is required.');
-      return;
+      return 'cloudant account host is required.';
     }
     if (!message.username) {
-      whisk.error('cloudant account username is required.');
-      return;
+      return 'cloudant account username is required.';
     }
     if (!message.password) {
-      whisk.error('cloudant account password is required.');
-      return;
+      return 'cloudant account password is required.';
     }
 
     cloudantUrl = "https://" + message.username + ":" + message.password + "@" + message.host;
diff --git a/actions/database-actions/list-query-indexes.js b/actions/database-actions/list-query-indexes.js
index b91fc98..d3ee9cf 100755
--- a/actions/database-actions/list-query-indexes.js
+++ b/actions/database-actions/list-query-indexes.js
@@ -6,13 +6,13 @@
 function main(message) {
   var cloudantOrError = getCloudantAccount(message);
   if (typeof cloudantOrError !== 'object') {
-    return whisk.error('getCloudantAccount returned an unexpected object type.');
+    return Promise.reject(cloudantOrError);
   }
   var cloudant = cloudantOrError;
   var dbName = message.dbname;
 
   if(!dbName) {
-    return whisk.error('dbname is required.');
+    return Promise.reject('dbname is required.');
   }
   var cloudantDb = cloudant.use(dbName);
 
@@ -43,16 +43,13 @@
     cloudantUrl = message.url;
   } else {
     if (!message.host) {
-      whisk.error('cloudant account host is required.');
-      return;
+      return 'cloudant account host is required.';
     }
     if (!message.username) {
-      whisk.error('cloudant account username is required.');
-      return;
+      return 'cloudant account username is required.';
     }
     if (!message.password) {
-      whisk.error('cloudant account password is required.');
-      return;
+      return 'cloudant account password is required.';
     }
 
     cloudantUrl = "https://" + message.username + ":" + message.password + "@" + message.host;
diff --git a/actions/database-actions/manage-bulk-documents.js b/actions/database-actions/manage-bulk-documents.js
index e99851c..42e1aa9 100755
--- a/actions/database-actions/manage-bulk-documents.js
+++ b/actions/database-actions/manage-bulk-documents.js
@@ -6,7 +6,7 @@
 function main(message) {
   var cloudantOrError = getCloudantAccount(message);
   if (typeof cloudantOrError !== 'object') {
-    return whisk.error('getCloudantAccount returned an unexpected object type.');
+    return Promise.reject(cloudantOrError);
   }
   var cloudant = cloudantOrError;
   var dbName = message.dbname;
@@ -14,10 +14,10 @@
   var params = {};
 
   if(!dbName) {
-    return whisk.error('dbname is required.');
+    return Promise.reject('dbname is required.');
   }
   if(!docs) {
-    return whisk.error('docs is required.');
+    return Promise.reject('docs is required.');
   }
   var cloudantDb = cloudant.use(dbName);
 
@@ -27,7 +27,7 @@
     try {
       params = JSON.parse(message.params);
     } catch (e) {
-      return whisk.error('params field cannot be parsed. Ensure it is valid JSON.');
+      return Promise.reject('params field cannot be parsed. Ensure it is valid JSON.');
     }
   }
 
@@ -37,10 +37,10 @@
     try {
       docs = JSON.parse(message.docs);
     } catch (e) {
-      return whisk.error('docs field cannot be parsed. Ensure it is valid JSON.');
+      return Promise.reject('docs field cannot be parsed. Ensure it is valid JSON.');
     }
   } else {
-    return whisk.error('docs field is ' + (typeof docs) + ' and should be an object or a JSON string.');
+    return Promise.reject('docs field is ' + (typeof docs) + ' and should be an object or a JSON string.');
   }
 
   return bulk(cloudantDb, docs, params);
@@ -72,16 +72,13 @@
     cloudantUrl = message.url;
   } else {
     if (!message.host) {
-      whisk.error('cloudant account host is required.');
-      return;
+      return 'cloudant account host is required.';
     }
     if (!message.username) {
-      whisk.error('cloudant account username is required.');
-      return;
+      return 'cloudant account username is required.';
     }
     if (!message.password) {
-      whisk.error('cloudant account password is required.');
-      return;
+      return 'cloudant account password is required.';
     }
 
     cloudantUrl = "https://" + message.username + ":" + message.password + "@" + message.host;
diff --git a/actions/database-actions/read-attachment.js b/actions/database-actions/read-attachment.js
index a4827af..bcff416 100755
--- a/actions/database-actions/read-attachment.js
+++ b/actions/database-actions/read-attachment.js
@@ -6,7 +6,7 @@
 function main(message) {
   var cloudantOrError = getCloudantAccount(message);
   if (typeof cloudantOrError !== 'object') {
-    return whisk.error('getCloudantAccount returned an unexpected object type.');
+    return Promise.reject(cloudantOrError);
   }
   var cloudant = cloudantOrError;
   var dbName = message.dbname;
@@ -15,13 +15,13 @@
   var params = {};
 
   if(!dbName) {
-    return whisk.error('dbname is required.');
+    return Promise.reject('dbname is required.');
   }
   if(!docId) {
-    return whisk.error('docid is required.');
+    return Promise.reject('docid is required.');
   }
   if(!attName) {
-    return whisk.error('attachmentname is required.');
+    return Promise.reject('attachmentname is required.');
   }
   var cloudantDb = cloudant.use(dbName);
 
@@ -31,12 +31,12 @@
     try {
       params = JSON.parse(message.params);
     } catch (e) {
-      return whisk.error('params field cannot be parsed. Ensure it is valid JSON.');
+      return Promise.reject('params field cannot be parsed. Ensure it is valid JSON.');
     }
   }
 
   //Add document revision to query if it exists
-  if(typeof message.docrev != 'undefined') {
+  if(typeof message.docrev !== 'undefined') {
     params.rev = message.docrev;
   }
 
@@ -70,16 +70,13 @@
     cloudantUrl = message.url;
   } else {
     if (!message.host) {
-      whisk.error('cloudant account host is required.');
-      return;
+      return 'cloudant account host is required.';
     }
     if (!message.username) {
-      whisk.error('cloudant account username is required.');
-      return;
+      return 'cloudant account username is required.';
     }
     if (!message.password) {
-      whisk.error('cloudant account password is required.');
-      return;
+      return 'cloudant account password is required.';
     }
 
     cloudantUrl = "https://" + message.username + ":" + message.password + "@" + message.host;
diff --git a/actions/database-actions/read-changes-feed.js b/actions/database-actions/read-changes-feed.js
index 256ff04..c28bad0 100755
--- a/actions/database-actions/read-changes-feed.js
+++ b/actions/database-actions/read-changes-feed.js
@@ -6,14 +6,14 @@
 function main(message) {
   var cloudantOrError = getCloudantAccount(message);
   if (typeof cloudantOrError !== 'object') {
-    return whisk.error('getCloudantAccount returned an unexpected object type.');
+    return Promise.reject(cloudantOrError);
   }
   var cloudant = cloudantOrError;
   var dbName = message.dbname;
   var params = {};
 
   if(!dbName) {
-    return whisk.error('dbname is required.');
+    return Promise.reject('dbname is required.');
   }
 
   if (typeof message.params === 'object') {
@@ -22,7 +22,7 @@
     try {
       params = JSON.parse(message.params);
     } catch (e) {
-      return whisk.error('params field cannot be parsed. Ensure it is valid JSON.');
+      return Promise.reject('params field cannot be parsed. Ensure it is valid JSON.');
     }
   }
 
@@ -53,16 +53,13 @@
     cloudantUrl = message.url;
   } else {
     if (!message.host) {
-      whisk.error('cloudant account host is required.');
-      return;
+      return 'cloudant account host is required.';
     }
     if (!message.username) {
-      whisk.error('cloudant account username is required.');
-      return;
+      return 'cloudant account username is required.';
     }
     if (!message.password) {
-      whisk.error('cloudant account password is required.');
-      return;
+      return 'cloudant account password is required.';
     }
 
     cloudantUrl = "https://" + message.username + ":" + message.password + "@" + message.host;
diff --git a/actions/database-actions/read-document.js b/actions/database-actions/read-document.js
index ea12a7c..00e8ff9 100755
--- a/actions/database-actions/read-document.js
+++ b/actions/database-actions/read-document.js
@@ -6,7 +6,7 @@
 function main(message) {
   var cloudantOrError = getCloudantAccount(message);
   if (typeof cloudantOrError !== 'object') {
-    return whisk.error('getCloudantAccount returned an unexpected object type.');
+    return Promise.reject(cloudantOrError);
   }
   var cloudant = cloudantOrError;
   var dbName = message.dbname;
@@ -14,10 +14,10 @@
   var params = {};
 
   if(!dbName) {
-    return whisk.error('dbname is required.');
+    return Promise.reject('dbname is required.');
   }
   if(!docId) {
-    return whisk.error('docid is required.');
+    return Promise.reject('docid is required.');
   }
   var cloudantDb = cloudant.use(dbName);
 
@@ -27,7 +27,7 @@
     try {
       params = JSON.parse(message.params);
     } catch (e) {
-      return whisk.error('params field cannot be parsed. Ensure it is valid JSON.');
+      return Promise.reject('params field cannot be parsed. Ensure it is valid JSON.');
     }
   }
 
@@ -58,16 +58,13 @@
     cloudantUrl = message.url;
   } else {
     if (!message.host) {
-      whisk.error('cloudant account host is required.');
-      return;
+      return 'cloudant account host is required.';
     }
     if (!message.username) {
-      whisk.error('cloudant account username is required.');
-      return;
+      return 'cloudant account username is required.';
     }
     if (!message.password) {
-      whisk.error('cloudant account password is required.');
-      return;
+      return 'cloudant account password is required.';
     }
 
     cloudantUrl = "https://" + message.username + ":" + message.password + "@" + message.host;
diff --git a/actions/database-actions/update-document.js b/actions/database-actions/update-document.js
index 6486502..7d00783 100755
--- a/actions/database-actions/update-document.js
+++ b/actions/database-actions/update-document.js
@@ -6,7 +6,7 @@
 function main(message) {
   var cloudantOrError = getCloudantAccount(message);
   if (typeof cloudantOrError !== 'object') {
-    return whisk.error('getCloudantAccount returned an unexpected object type.');
+    return Promise.reject(cloudantOrError);
   }
   var cloudant = cloudantOrError;
   var dbName = message.dbname;
@@ -14,7 +14,7 @@
   var params = {};
 
   if(!dbName) {
-    return whisk.error('dbname is required.');
+    return Promise.reject('dbname is required.');
   }
 
   if (typeof message.doc === 'object') {
@@ -23,13 +23,13 @@
     try {
       doc = JSON.parse(message.doc);
     } catch (e) {
-      return whisk.error('doc field cannot be parsed. Ensure it is valid JSON.');
+      return Promise.reject('doc field cannot be parsed. Ensure it is valid JSON.');
     }
   } else {
-    return whisk.error('doc field is ' + (typeof doc) + ' and should be an object or a JSON string.');
+    return Promise.reject('doc field is ' + (typeof doc) + ' and should be an object or a JSON string.');
   }
   if(!doc || !doc.hasOwnProperty("_rev")) {
-    return whisk.error('doc and doc._rev are required.');
+    return Promise.reject('doc and doc._rev are required.');
   }
   var cloudantDb = cloudant.use(dbName);
 
@@ -39,7 +39,7 @@
     try {
       params = JSON.parse(message.params);
     } catch (e) {
-      return whisk.error('params field cannot be parsed. Ensure it is valid JSON.');
+      return Promise.reject('params field cannot be parsed. Ensure it is valid JSON.');
     }
   }
 
@@ -56,7 +56,7 @@
         console.log('success', response);
         resolve(response);
       } else {
-        console.log('error', error)
+        console.log('error', error);
         reject(error);
       }
     });
@@ -73,16 +73,13 @@
     cloudantUrl = message.url;
   } else {
     if (!message.host) {
-      whisk.error('cloudant account host is required.');
-      return;
+      return 'cloudant account host is required.';
     }
     if (!message.username) {
-      whisk.error('cloudant account username is required.');
-      return;
+      return 'cloudant account username is required.';
     }
     if (!message.password) {
-      whisk.error('cloudant account password is required.');
-      return;
+      return 'cloudant account password is required.';
     }
 
     cloudantUrl = "https://" + message.username + ":" + message.password + "@" + message.host;