Mqtt Engine unable to parse Death Certificate

Hi all,

I am receiving the following error in the log when the MQTT engine receives a Death Certificate.

> |EngineCallback|13Mar2019 14:23:02|Failed to handle Sparkplug B message on topic spBv1.0/Devel/NDEATH/N00001|
> | --- | --- | --- |
> |com.google.protobuf.InvalidProtocolBufferException: CodedInputStream encountered a malformed varint.
> at com.google.protobuf.InvalidProtocolBufferException.malformedVarint(InvalidProtocolBufferException.java:96)
> at com.google.protobuf.CodedInputStream.readRawVarint64SlowPath(CodedInputStream.java:786)
> at com.google.protobuf.CodedInputStream.readRawVarint64(CodedInputStream.java:772)
> at com.google.protobuf.CodedInputStream.readUInt64(CodedInputStream.java:328)
> at org.eclipse.tahu.protobuf.SparkplugBProto$Payload.(SparkplugBProto.java:250)
> at org.eclipse.tahu.protobuf.SparkplugBProto$Payload.(SparkplugBProto.java:189)
> at org.eclipse.tahu.protobuf.SparkplugBProto$Payload$1.parsePartialFrom(SparkplugBProto.java:19009)
> at org.eclipse.tahu.protobuf.SparkplugBProto$Payload$1.parsePartialFrom(SparkplugBProto.java:19004)
> at com.google.protobuf.AbstractParser.parsePartialFrom(AbstractParser.java:139)
> at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:173)
> at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:185)
> at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:190)
> at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:49)
> at org.eclipse.tahu.protobuf.SparkplugBProto$Payload.parseFrom(SparkplugBProto.java:18084)
> at org.eclipse.tahu.message.SparkplugBPayloadDecoder.buildFromByteArray(SparkplugBPayloadDecoder.java:61)
> at org.eclipse.tahu.message.SparkplugBPayloadDecoder.buildFromByteArray(SparkplugBPayloadDecoder.java:52)
> at com.cirruslink.mqtt.engine.gateway.sparkplug.SparkplugBPayloadHandler.decodePayload(SparkplugBPayloadHandler.java:150)
> at com.cirruslink.mqtt.engine.gateway.sparkplug.SparkplugBPayloadHandler.decodePayload(SparkplugBPayloadHandler.java:1)
> at com.cirruslink.mqtt.engine.gateway.sparkplug.SparkplugPayloadHandler.handlePayload(SparkplugPayloadHandler.java:78)
> at com.cirruslink.mqtt.engine.gateway.EngineCallback.lambda$1(EngineCallback.java:178)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)|

I have tried encoding/decoding the Will Message(Death Certificate) at the client side and have not encountered a problem.

Has anybody seen a similar behavior or any pointers on how this can be fixed ?

MQTT Engine & Distributor Version: 3.4.6