# Mqtt Engine unable to parse Death Certificate

**URL:** <https://forum.inductiveautomation.com/t/mqtt-engine-unable-to-parse-death-certificate/23308>\
**Category:** 3rd Party Modules\
**Created:** [March 13, 2019, 6:31pm UTC](https://forum.inductiveautomation.com/t/mqtt-engine-unable-to-parse-death-certificate/23308 "2019-03-13T18:31:32Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![abhimanyu.chopra](https://avatars.discourse-cdn.com/v4/letter/a/da6949/32.png) [@abhimanyu.chopra](https://forum.inductiveautomation.com/u/abhimanyu.chopra)\
**Post date:** [March 13, 2019, 6:31pm UTC](https://forum.inductiveautomation.com/t/mqtt-engine-unable-to-parse-death-certificate/23308/1 "2019-03-13T18:31:32Z")

</div>

Hi all,

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

```auto
> |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
