diff --git a/lifxlan/device.py b/lifxlan/device.py
index <HASH>..<HASH> 100644
--- a/lifxlan/device.py
+++ b/lifxlan/device.py
@@ -428,7 +428,7 @@ class Device(object):
             attempts += 1
         if not success:
             self.close_socket()
-            raise IOError("WorkflowException: Did not receive {} in response to {}".format(str(response_type), str(msg_type)))
+            raise WorkflowException("WorkflowException: Did not receive {} in response to {}".format(str(response_type), str(msg_type)))
         else:
             self.close_socket()
         return device_response
diff --git a/lifxlan/lifxlan.py b/lifxlan/lifxlan.py
index <HASH>..<HASH> 100644
--- a/lifxlan/lifxlan.py
+++ b/lifxlan/lifxlan.py
@@ -46,7 +46,11 @@ class LifxLAN:
             if self.num_lights == None:
                 responses = self.discover()
             else:
-                responses = self.broadcast_with_resp(GetService, StateService)
+                try:
+                    responses = self.broadcast_with_resp(GetService, StateService)
+                except WorkflowException as e:
+                    print ("Exception: {}".format(e))
+                    return None
             for r in responses:
                 light = Light(r.target_addr, r.ip_addr, r.service, r.port, self.source_id, self.verbose)
                 self.lights.append(light)
Added error handling for LAN with zero attached LIFX devices