diff --git a/main.js b/main.js
index 2b14348c5c0b833119ffade62ed2534cb728e1e9..194cd3b7d91845d5f20fad35c6ea23183eacaca3 100644
--- a/main.js
+++ b/main.js
@@ -1,6 +1,7 @@
 const mqtt = require('mqtt');
 const http = require('http');
 const fs = require('node:fs');
+const crypto = require("crypto");
 
 // Prepend timestamp and severity to all console messages
 require('console-stamp')(console);
@@ -16,11 +17,15 @@ const web_port = process.env.HTTP_PORT;
 const mqtt_host = process.env.MQTT_HOST;
 const mqtt_port = process.env.MQTT_PORT;
 
+// Use a randomized client ID to avoid collisions, as we don't need any kind
+// of session resumption
+const clientId = crypto.randomUUID();
+
 // Create an MQTT client instance
 const options = {
   clean: true,
   connectTimeout: 5000,
-  clientId: 'nodejs_door_listener',
+  clientId: clientId,
   username: process.env.MQTT_USER,
   password: process.env.MQTT_PASS,
 };