diff --git a/Dockerfile b/Dockerfile
index c639138ea5163533c8d81803e10f13f5bfff4373..7436f6b513cc7770fc4782934cfe8fcc1158a44c 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -9,7 +9,8 @@ COPY ./ ./
 RUN CGO_ENABLED=0 GOOS=linux xx-go build -ldflags "-w -s" -o /ems-esp-logger
 
 FROM jonasled.dev/infra/images/scratch-rootless@sha256:b29ee9170c65f2825d77f1c8d97c6ae138f76fb3a150454eb6eb87e7767fba4b
-ENV UPDATE_INSTALL=false
+ENV UPDATE_INSTALL=false \
+    EXIT_ON_DISCONNECT=true
 COPY --from=build /ems-esp-logger /ems-esp-logger
 ENTRYPOINT ["/ems-esp-logger"]
 
diff --git a/mqttclient/main.go b/mqttclient/main.go
index 4ebed07d0fb6f0aca2e31fb13c5952e9ebab3ee8..7f0092f0fdcfd095d8a60e03ecec35bb0ef9a4ba 100644
--- a/mqttclient/main.go
+++ b/mqttclient/main.go
@@ -43,6 +43,11 @@ var messagePubHandlerBoiler mqtt.MessageHandler = func(client mqtt.Client, msg m
 
 var connectHandler mqtt.OnConnectHandler = func(client mqtt.Client) {
 	log.Log.Info("Successfully connected to MQTT broker")
+	if os.Getenv("EXIT_ON_DISCONNECT") == "true" {
+		log.Log.Info("Sleeping 10s before exiting")
+		time.Sleep(10 * time.Second)
+		os.Exit(1)
+	}
 }
 
 var connectLostHandler mqtt.ConnectionLostHandler = func(client mqtt.Client, err error) {