diff --git a/src/cluster/brokerPool.js b/src/cluster/brokerPool.js
index <HASH>..<HASH> 100644
--- a/src/cluster/brokerPool.js
+++ b/src/cluster/brokerPool.js
@@ -205,6 +205,7 @@ module.exports = class BrokerPool {
         await broker.connect()
       } catch (e) {
         if (e.name === 'KafkaJSConnectionError' || e.type === 'ILLEGAL_SASL_STATE') {
+          await broker.disconnect()
           // Rebuild the connection since it can't recover from illegal SASL state
           broker.connection = this.connectionBuilder.build({
             host: broker.connection.host,
Make sure the broker is disconnected before a reconnect