# Expression exception after upgrading to 8.1.3

**URL:** <https://forum.inductiveautomation.com/t/expression-exception-after-upgrading-to-8-1-3/45444>\
**Category:** Ignition\
**Created:** [April 9, 2021, 5:48pm UTC](https://forum.inductiveautomation.com/t/expression-exception-after-upgrading-to-8-1-3/45444 "2021-04-09T17:48:24Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![kevin.deyoung](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.deyoung/32/9558_2.png) [@kevin.deyoung](https://forum.inductiveautomation.com/u/kevin.deyoung)\
**Post date:** [April 9, 2021, 5:48pm UTC](https://forum.inductiveautomation.com/t/expression-exception-after-upgrading-to-8-1-3/45444/1 "2021-04-09T17:48:24Z")

</div>

The following Expression in a vision component worked fine in v7.9.7 but after upgrading to v8.1.3 it is raising exception “MissingFormatArgumentException: Format specifier '%s”

if(secondsBetween({CoLOS\_PrinterRow.PrinterUDT::Status.LastStatusTimestamp}, now(1000)) \> {CoLOS\_PrinterRow.badQualitySeconds},  
forceQuality({CoLOS\_PrinterRow.PrinterUDT::Current Label}, 512),  
{CoLOS\_PrinterRow.PrinterUDT::Current Label})

---

<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:** [April 9, 2021, 5:51pm UTC](https://forum.inductiveautomation.com/t/expression-exception-after-upgrading-to-8-1-3/45444/2 "2021-04-09T17:51:30Z")

</div>

Can you post the full stack trace / error you are seeing?

---

<div class="post-metadata">

**Author:** ![kevin.deyoung](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.deyoung/32/9558_2.png) [@kevin.deyoung](https://forum.inductiveautomation.com/u/kevin.deyoung)\
**Post date:** [April 9, 2021, 6:03pm UTC](https://forum.inductiveautomation.com/t/expression-exception-after-upgrading-to-8-1-3/45444/3 "2021-04-09T18:03:56Z")

</div>

java.lang.Exception: Error executing expression binding on  
CoLOS\_PrinterRow.CoLOS\_PrinterRow.tbxCurrentLabel.text  
at com.inductiveautomation.factorypmi.application.binding.ExpressionPropertyAdapter.runExpression(ExpressionPropertyAdapter.java:92)  
at com.inductiveautomation.factorypmi.application.binding.ExpressionPropertyAdapter.startup(ExpressionPropertyAdapter.java:113)  
at com.inductiveautomation.factorypmi.application.binding.DefaultInteractionController.setPropertyAdapter(DefaultInteractionController.java:219)  
at com.inductiveautomation.factorypmi.designer.property.configurators.ExpressionConfigurator.bind(ExpressionConfigurator.java:246)  
at com.inductiveautomation.factorypmi.designer.property.configurators.ExpressionConfigurator.tryCommit(ExpressionConfigurator.java:192)  
at com.inductiveautomation.factorypmi.designer.property.configurators.ConfiguratorMultiplexor$EditorParent.tryCommit(ConfiguratorMultiplexor.java:399)  
at com.inductiveautomation.factorypmi.designer.property.configurators.ConfiguratorMultiplexor.tryCommit(ConfiguratorMultiplexor.java:547)  
at com.inductiveautomation.factorypmi.designer.property.configurators.DynamicOptsDialog.doOK(DynamicOptsDialog.java:95)  
at com.inductiveautomation.factorypmi.designer.property.configurators.DynamicOptsDialog$1.actionPerformed(DynamicOptsDialog.java:64)  
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(Unknown Source)  
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)  
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)  
at java.desktop/javax.swing.DefaultButtonModel.setPressed(Unknown Source)  
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)  
at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)  
at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)  
at java.desktop/java.awt.Component.processEvent(Unknown Source)  
at java.desktop/java.awt.Container.processEvent(Unknown Source)  
at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)  
at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)  
at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)  
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)  
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)  
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)  
at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)  
at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)  
at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)  
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)  
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)  
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)  
at java.base/java.security.AccessController.doPrivileged(Native Method)  
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)  
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)  
at java.desktop/java.awt.EventQueue$5.run(Unknown Source)  
at java.desktop/java.awt.EventQueue$5.run(Unknown Source)  
at java.base/java.security.AccessController.doPrivileged(Native Method)  
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)  
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)  
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)  
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)  
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)  
at java.desktop/java.awt.WaitDispatchSupport$2.run(Unknown Source)  
at java.desktop/java.awt.WaitDispatchSupport$4.run(Unknown Source)  
at java.desktop/java.awt.WaitDispatchSupport$4.run(Unknown Source)  
at java.base/java.security.AccessController.doPrivileged(Native Method)  
at java.desktop/java.awt.WaitDispatchSupport.enter(Unknown Source)  
at java.desktop/java.awt.Dialog.show(Unknown Source)  
at java.desktop/java.awt.Component.show(Unknown Source)  
at java.desktop/java.awt.Component.setVisible(Unknown Source)  
at java.desktop/java.awt.Window.setVisible(Unknown Source)  
at java.desktop/java.awt.Dialog.setVisible(Unknown Source)  
at com.inductiveautomation.factorypmi.designer.property.configurators.DynamicOptsDialog.showDialog(DynamicOptsDialog.java:163)  
at com.inductiveautomation.factorypmi.designer.model.VisionDesignerImpl.openBindingDialog(VisionDesignerImpl.java:1133)  
at com.inductiveautomation.factorypmi.designer.property.editors.bb.DynamicOptionsButton.actionPerformed(DynamicOptionsButton.java:37)  
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(Unknown Source)  
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)  
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)  
at java.desktop/javax.swing.DefaultButtonModel.setPressed(Unknown Source)  
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)  
at com.jidesoft.plaf.basic.BasicJideButtonListener.mouseReleased(Unknown Source)  
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)  
at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)  
at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)  
at java.desktop/java.awt.Component.processEvent(Unknown Source)  
at java.desktop/java.awt.Container.processEvent(Unknown Source)  
at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)  
at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)  
at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)  
at java.desktop/javax.swing.plaf.basic.BasicTableUI$Handler.repostEvent(Unknown Source)  
at java.desktop/javax.swing.plaf.basic.BasicTableUI$Handler.mouseReleased(Unknown Source)  
at com.jidesoft.swing.DelegateMouseInputListener.mouseReleased(Unknown Source)  
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)  
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)  
at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)  
at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)  
at java.desktop/java.awt.Component.processEvent(Unknown Source)  
at java.desktop/java.awt.Container.processEvent(Unknown Source)  
at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)  
at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)  
at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)  
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)  
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)  
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)  
at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)  
at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)  
at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)  
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)  
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)  
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)  
at java.base/java.security.AccessController.doPrivileged(Native Method)  
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)  
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)  
at java.desktop/java.awt.EventQueue$5.run(Unknown Source)  
at java.desktop/java.awt.EventQueue$5.run(Unknown Source)  
at java.base/java.security.AccessController.doPrivileged(Native Method)  
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)  
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)  
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)  
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)  
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)  
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)  
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)  
at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)  
Caused by: java.util.MissingFormatArgumentException: Format specifier ‘%s’  
at java.base/java.util.Formatter.format(Unknown Source)  
at java.base/java.util.Formatter.format(Unknown Source)  
at com.inductiveautomation.ignition.common.util.LoggerEx.createMessage(LoggerEx.java:187)  
at com.inductiveautomation.ignition.common.util.LoggerEx.warnf(LoggerEx.java:287)  
at com.inductiveautomation.ignition.common.expressions.DefaultFunctionFactory$TimePartBetweenFunction.execute(DefaultFunctionFactory.java:3452)  
at com.inductiveautomation.ignition.common.expressions.FunctionExpression.execute(FunctionExpression.java:69)  
at com.inductiveautomation.ignition.common.expressions.ComparisonExpression.execute(ComparisonExpression.java:47)  
at com.inductiveautomation.ignition.common.expressions.DefaultFunctionFactory$IfFunction.execute(DefaultFunctionFactory.java:1707)  
at com.inductiveautomation.ignition.common.expressions.FunctionExpression.execute(FunctionExpression.java:69)  
at com.inductiveautomation.factorypmi.application.binding.ExpressionPropertyAdapter.runExpression(ExpressionPropertyAdapter.java:83)  
… 102 more

Ignition v8.1.3 (b2021030309)  
Java: Azul Systems, Inc. 11.0.9

---

<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:** [April 9, 2021, 6:08pm UTC](https://forum.inductiveautomation.com/t/expression-exception-after-upgrading-to-8-1-3/45444/4 "2021-04-09T18:08:00Z")

</div>

Hmm, well this is just a stupid bug in the `secondsBetween` expression function that is being triggered trying to log when the first argument is supposed to be a Date but you actually pass in `null`/`None`.

---

<div class="post-metadata">

**Author:** ![kevin.deyoung](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.deyoung/32/9558_2.png) [@kevin.deyoung](https://forum.inductiveautomation.com/u/kevin.deyoung)\
**Post date:** [April 9, 2021, 6:17pm UTC](https://forum.inductiveautomation.com/t/expression-exception-after-upgrading-to-8-1-3/45444/5 "2021-04-09T18:17:29Z")

</div>

So a workaround would be to check for the condition prior to the secondsBetween in this case.

---

<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:** [April 9, 2021, 6:36pm UTC](https://forum.inductiveautomation.com/t/expression-exception-after-upgrading-to-8-1-3/45444/6 "2021-04-09T18:36:13Z")

</div>

Yes I think for now that’s what you’ll have to do.
