diff --git a/hbmqtt/broker.py b/hbmqtt/broker.py
index <HASH>..<HASH> 100644
--- a/hbmqtt/broker.py
+++ b/hbmqtt/broker.py
@@ -370,7 +370,7 @@ class Broker:
 
         if client_session.clean_session:
             # Delete existing session and create a new one
-            if client_session.client_id is not None:
+            if client_session.client_id is not None and client_session.client_id != "":
                 self.delete_session(client_session.client_id)
             else:
                 client_session.client_id = gen_client_id()
correctly handle CONNECT with zero-length client_id

Zero-length client_ids in CONNECT packets show up in the payload as empty strings, not None; the broker should generate a new id for these connections.