MQTT SUB payload stored as ByteArray object reference instead of decoded text

What happened

ServerMqttManager received MQTT messages and passed the payload to the message handler using message.payload.toString(). In Kotlin/JVM, ByteArray.toString() returns the JVM object reference string ([B@1cb85350), not the UTF-8 text content. Every inbound MQTT SUB message therefore stored a garbage heap-address string into the snapshot and connected DataPoints, making the full external publisher → MQTT SUB → DataPoint → automation path produce junk downstream. The bug was visible in logs: the line above the broken call already decoded correctly with String(message.payload) for logging purposes, but the handler invocation did not.

Introducing commit: ad3d0b6c7 mqtt working.

Fix

Prevention