diff --git a/index.js b/index.js
index e0d0695..709adcf 100644
--- a/index.js
+++ b/index.js
@@ -1,4 +1,5 @@
 const DEFAULT_CORE_REQUEST_TIMEOUT = 5 * 1000;
+const DEFAULT_SLEEP_AFTER_CORE_ERROR_MS = 3000;
 const MAX_REPORT_RETRY = 30;
 const REPORT_RETRY_SLEEP_MS = 2000;
 
@@ -8,10 +9,12 @@ const config = require('komodo-sdk/config');
 const coreUrl = require('komodo-sdk/core-url');
 const logger = require('komodo-sdk/logger');
 
+const sleep = require('./lib/sleep');
+
 let partner;
 let first = true;
 let coreIsHealthy = null;
-let skipNext = 0;
+// let skipNext = 0;
 
 const DEFAULT_CORE_AXIOS_CONFIG = {
     headers: { 'Content-Type': 'application/json' },
@@ -34,12 +37,12 @@ function detectCoreStatusChange(isHealthy, url, err) {
 }
 
 async function getTask() {
-    if (!partner) return;
+    if (!partner) return null;
 
-    if (skipNext > 0) {
-        skipNext -= 1;
-        return;
-    }
+    // if (skipNext > 0) {
+    //     skipNext -= 1;
+    //     return null;
+    // }
 
     if (first) {
         first = false;
@@ -65,11 +68,12 @@ async function getTask() {
         detectCoreStatusChange(true, coreEndpoint);
         task = result.data.task;
     } catch (e) {
-        skipNext = 3;
+        // skipNext = 3;
         detectCoreStatusChange(false, coreEndpoint, e);
+        await sleep(DEFAULT_SLEEP_AFTER_CORE_ERROR_MS);
     }
 
-    if (!task) return;
+    if (!task) return null;
 
     task.remote_product = ((config.remote_products || {})[task.product]) || task.product;
 
@@ -77,10 +81,15 @@ async function getTask() {
 
     if (task.inquiry_only) {
         if (typeof partner.inquiry === 'function') partner.inquiry(task);
-        return;
+        return task;
+    }
+
+    if (typeof partner.pay === 'function') {
+        partner.pay(task);
+        return task;
     }
 
-    if (typeof partner.pay === 'function') partner.pay(task);
+    return null;
 }
 
 const getTaskLooper = async () => {
@@ -88,7 +97,7 @@ const getTaskLooper = async () => {
 
     setTimeout(() => {
         getTaskLooper();
-    }, config,postpaid_pull_interval_ms || config.pull_interval_ms || 1000);
+    }, config.postpaid_pull_interval_ms || config.pull_interval_ms || 1000);
 };
 
 exports.setPartner = (val) => {
diff --git a/lib/sleep.js b/lib/sleep.js
new file mode 100644
index 0000000..07c8881
--- /dev/null
+++ b/lib/sleep.js
@@ -0,0 +1,12 @@
+const sleep = async (ms) => new Promise((resolve) => {
+    if (!ms) {
+        resolve();
+        return;
+    }
+
+    setTimeout(() => {
+        resolve();
+    }, ms);
+});
+
+module.exports = sleep;