diff --git a/consumers/mqtt.py b/consumers/mqtt.py
index 8e54776..5d471fc 100644
--- a/consumers/mqtt.py
+++ b/consumers/mqtt.py
@@ -130,11 +130,25 @@ class MqttConsumer(BaseConsumer):
         self.client.will_set(
             f"{self.topic_prefix}/available", payload="offline", retain=True
         )
-        self.client.connect(
-            settings["client"]["host"],
-            settings["client"]["port"],
-            settings["client"]["keepalive"],
-        )
+        while True:
+            try:
+                self.client.connect(
+                    settings["client"]["host"],
+                    settings["client"]["port"],
+                    settings["client"]["keepalive"],
+                )
+                break
+            except OSError as err:
+                # Network is unreachable
+                if err.errno == 101:
+                    pass
+                # Temporary failure in name resolution
+                elif err.errno == -3:
+                    pass
+                else:
+                    raise
+                print(err)
+                sleep(0.1)
 
     def config(self, settings: Dict[str, Any]):
         super().config(settings)