# Is timestamp now required on each metric?

**URL:** https://forum.cirrus-link.com/t/is-timestamp-now-required-on-each-metric/667
**Category:** MQTT Modules
**Created:** [November 25, 2024, 12:42am UTC](https://forum.cirrus-link.com/t/is-timestamp-now-required-on-each-metric/667 "2024-11-25T00:42:01Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![bill.liu](https://avatars.discourse-cdn.com/v4/letter/b/9fc348/32.png) [@bill.liu](https://forum.cirrus-link.com/u/bill.liu)
#### Post date: [November 25, 2024, 12:42am UTC](https://forum.cirrus-link.com/t/is-timestamp-now-required-on-each-metric/667/1 "2024-11-25T00:42:02Z")

</div>

After upgrading to 4.0.25 I got these error messages:

```auto
SparkplugMessageRunnable	Failed to handle Sparkplug B message on topic spBv1.0/Sparkplug Devices/DDATA/XXXX Edge Node/XXXX
com.cirruslink.common.util.exception.CirrusException: INVALID_ARGUMENT

at com.cirruslink.mqtt.engine.gateway.sparkplug.SparkplugPayloadHandler.handlePayload(SparkplugPayloadHandler.java:234)

at com.cirruslink.mqtt.engine.gateway.sparkplug.SparkplugMessageRunnable.run(SparkplugMessageRunnable.java:72)

at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.base/java.lang.Thread.run(Unknown Source)

Caused by: java.lang.NullPointerException: Cannot invoke "java.util.Date.getTime()" because the return value of "org.eclipse.tahu.message.model.Metric.getTimestamp()" is null

at com.cirruslink.mqtt.engine.gateway.sparkplug.SparkplugBPayloadHandler.handleDeviceData(SparkplugBPayloadHandler.java:1824)

at com.cirruslink.mqtt.engine.gateway.sparkplug.SparkplugPayloadHandler.handlePayload(SparkplugPayloadHandler.java:220)

... 4 common frames omitted

```

The protobuf schema from the SparkplugB specification shows the timestamp under Metric is optional.

---

<div class="post-metadata">

### Author: ![wes.johnson](https://avatars.discourse-cdn.com/v4/letter/w/f14d63/32.png) [@wes.johnson](https://forum.cirrus-link.com/u/wes.johnson)
#### Post date: [November 25, 2024, 7:31pm UTC](https://forum.cirrus-link.com/t/is-timestamp-now-required-on-each-metric/667/2 "2024-11-25T19:31:16Z")

</div>

This actually is required on page 68 of the spec ([https://www.eclipse.org/tahu/spec/sparkplug\_spec.pdf](https://www.eclipse.org/tahu/spec/sparkplug_spec.pdf)):

[tck-id-payloads-name-birth-data-requirement] The timestamp MUST be included with  
every metric in all NBIRTH, DBIRTH, NDATA, and DDATA messages.

---

<div class="post-metadata">

### Author: ![bill.liu](https://avatars.discourse-cdn.com/v4/letter/b/9fc348/32.png) [@bill.liu](https://forum.cirrus-link.com/u/bill.liu)
#### Post date: [November 25, 2024, 7:45pm UTC](https://forum.cirrus-link.com/t/is-timestamp-now-required-on-each-metric/667/3 "2024-11-25T19:45:26Z")

</div>

Thanks for the link and clarification. I have been living in a cave and was not aware when version 3.0 came out.
