diff --git a/src/consumer/runner.js b/src/consumer/runner.js
index <HASH>..<HASH> 100644
--- a/src/consumer/runner.js
+++ b/src/consumer/runner.js
@@ -331,7 +331,7 @@ module.exports = class Runner {
           })
 
           await this.join()
-          this.scheduleFetch()
+          setImmediate(() => this.scheduleFetch())
           return
         }
 
@@ -346,12 +346,12 @@ module.exports = class Runner {
 
           this.consumerGroup.memberId = null
           await this.join()
-          this.scheduleFetch()
+          setImmediate(() => this.scheduleFetch())
           return
         }
 
         if (e.name === 'KafkaJSOffsetOutOfRange') {
-          this.scheduleFetch()
+          setImmediate(() => this.scheduleFetch())
           return
         }
#<I> all recursive calls to scheduleFetch scheduled with setImmedate()