From db4008d86ae2a5408505a0e78ba3db8f05487b3e Mon Sep 17 00:00:00 2001 From: Anton Roslund Date: Mon, 5 Jan 2026 15:57:17 +0100 Subject: [PATCH] Enhance error handling in MQTT message processing to ignore MySQL error 1020 related to race conditions --- src/mqtt.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/mqtt.js b/src/mqtt.js index ce47a31..18551e2 100644 --- a/src/mqtt.js +++ b/src/mqtt.js @@ -983,7 +983,12 @@ client.on("message", async (topic, message) => { }, }); } catch (e) { - console.error(e); + // Ignore MySQL error 1020 "Record has changed since last read" - this is a race condition + // that occurs when multiple packets arrive concurrently for the same node + const errorMessage = e.message || String(e); + if (!errorMessage.includes('Record has changed since last read')) { + console.error(e); + } } // Keep track of the names a node has been using. @@ -1006,7 +1011,12 @@ client.on("message", async (topic, message) => { } }); } catch (e) { - console.error(e); + // Ignore MySQL error 1020 "Record has changed since last read" - this is a race condition + // that occurs when multiple packets arrive concurrently for the same node + const errorMessage = e.message || String(e); + if (!errorMessage.includes('Record has changed since last read')) { + console.error(e); + } } }