# \[BUG\] Ignition 8.1.2 - lastchange property for tag expression updated at each execution

**URL:** <https://forum.inductiveautomation.com/t/bug-ignition-8-1-2-lastchange-property-for-tag-expression-updated-at-each-execution/43175>\
**Category:** Ignition\
**Tags:** ignition80\
**Created:** [February 9, 2021, 1:46pm UTC](https://forum.inductiveautomation.com/t/bug-ignition-8-1-2-lastchange-property-for-tag-expression-updated-at-each-execution/43175 "2021-02-09T13:46:43Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![mazeyrat](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mazeyrat/32/10955_2.png) [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Post date:** [February 9, 2021, 1:46pm UTC](https://forum.inductiveautomation.com/t/bug-ignition-8-1-2-lastchange-property-for-tag-expression-updated-at-each-execution/43175/1 "2021-02-09T13:46:43Z")

</div>

**Ignition 8.1.2**

We display **path/to/tag.lastchange** (inherited from 7.9/8.0) in some bindings.

For gateway’s expression tag (with **Tag Group Execution mode** ), lastchange tag property is updated every times Tag group is executed instead of when the tag value really change !

Seems to be a bug.

**Lastchange** seem to be considered like **Timestamp** property

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [February 11, 2021, 5:55pm UTC](https://forum.inductiveautomation.com/t/bug-ignition-8-1-2-lastchange-property-for-tag-expression-updated-at-each-execution/43175/2 "2021-02-11T17:55:56Z")

</div>

The old LastChange tag prop is just aliased to the Timestamp property. When you use Tag Group Execution Mode something about the value (a value is Value, Quality, and Timestamp) changes every time the expression is forced to evaluate.

---

<div class="post-metadata">

**Author:** ![mazeyrat](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mazeyrat/32/10955_2.png) [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Post date:** [February 11, 2021, 10:12pm UTC](https://forum.inductiveautomation.com/t/bug-ignition-8-1-2-lastchange-property-for-tag-expression-updated-at-each-execution/43175/3 "2021-02-11T22:12:47Z")

</div>

In my use case, I have 2 tags:

**PATH1/TS/ETAT\_PORT** is an Integer expression tag

```auto
jsonGet(toString({[.]../_intern/IF_TABLE}),"['Ethernet0/0/0']['_1_3_6_1_2_1_2_2_1_8']")

```

When I check in the tag browser : **V,Q,T** doesn’t change.

**PATH1/TA/ETAT\_PORT** is a boolean expression tag

```auto
if(tag(concat("[default]",replace({PathToTag},"TA/DEF_PORT","TS/ETAT_PORT")))!=1,True,False)

```

When I check in the tag browser : **Timestamp** change every second.

I’m not sure it was the case in 8.1.1…

Do you think it could be possible to change the **Lastchange** tag property to reflect a true “lastchange” ?

---

<div class="post-metadata">

**Author:** ![nathanielbrown](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nathanielbrown/32/9856_2.png) [@nathanielbrown](https://forum.inductiveautomation.com/u/nathanielbrown)\
**Post date:** [February 12, 2021, 12:58am UTC](https://forum.inductiveautomation.com/t/bug-ignition-8-1-2-lastchange-property-for-tag-expression-updated-at-each-execution/43175/4 "2021-02-12T00:58:36Z")

</div>

I’ve observed a similar change for memory tags (boolean only) that occurred between 8.1.1 and 8.1.2. I had a gateway timer script with a section that wrote true to a boolean tag, but found that each repeated write of true resulted in a new timestamp for that tag, instead of the timestamp being when the tag value first changed from false to true.

My tests with integer memory tags in 8.1.2 showed no change in behavior from 8.1.1 (as far as I am aware).

---

<div class="post-metadata">

**Author:** ![Colby.Clegg](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/colby.clegg/32/3282_2.png) [@Colby.Clegg](https://forum.inductiveautomation.com/u/Colby.Clegg)\
**Post date:** [February 26, 2021, 6:25pm UTC](https://forum.inductiveautomation.com/t/bug-ignition-8-1-2-lastchange-property-for-tag-expression-updated-at-each-execution/43175/5 "2021-02-26T18:25:11Z")

</div>

OK, we’re trying to get this cleaned up for 8.1.3 today. We’re going to tweak it so that a non-0 deadband on any data type will filter time-only changes.

8.1.2 did change this, as part of an effort to better support out-of-order data delivery to tags (which is happening more and more as we support different underlying systems with data buffers). Long story short, it was decided that if a tag’s value source publishes a change, and the config of the tag (namely deadband) allows the value, we shouldn’t then filter it again at the subscription layer. The default deadband value of 0.001 should have prevented any change for most tags, but that deadband wasn’t applied for non-numeric tags. We did tweak the logic for integers in 8.1.2 (previously the .001 deadband was basically treated as “deadband=off”, because an integer can’t change like that), but we didn’t include other data types.

There’s still some debate about how this all should work, and if the original decision was sound or not, but at least this should give you a way to control what’s happening, and should be consistent upon upgrade in most cases.
