Error saving tag changes - java.lang.StackOverflowError

I noticed some funny business with tags in a UDT and had a look and the OPC item paths were super weird:

ns=1;s=[Pckg_WineDelivery]TPW20001.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.LT.ResetPB

When I then tried to fix it, I started getting these errors when trying to save the tag:

ExecutionException: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: java.lang.StackOverflowError
	caused by GatewayException: java.lang.StackOverflowError
	caused by ExecutionException: java.lang.StackOverflowError

Ignition v8.1.0 (b2020110211)
Java: Azul Systems, Inc. 11.0.7

Not sure if it’s related, but also getting constant errors in the log like this:

StoreAndForward.Sink.HsqlDataStore


java.io.InvalidClassException: com.inductiveautomation.ignition.common.config.BasicProperty; local class incompatible: stream classdesc serialVersionUID = 7327305604978257671, local class serialVersionUID = 8982054396802939425

at java.base/java.io.ObjectStreamClass.initNonProxy(Unknown Source)

at java.base/java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)

at java.base/java.io.ObjectInputStream.readClassDesc(Unknown Source)

at java.base/java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)

at java.base/java.io.ObjectInputStream.readObject0(Unknown Source)

at java.base/java.io.ObjectInputStream.readObject(Unknown Source)

at java.base/java.io.ObjectInputStream.readObject(Unknown Source)

at java.base/java.util.HashMap.readObject(Unknown Source)

at java.base/jdk.internal.reflect.GeneratedMethodAccessor71.invoke(Unknown Source)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.base/java.lang.reflect.Method.invoke(Unknown Source)

at java.base/java.io.ObjectStreamClass.invokeReadObject(Unknown Source)

at java.base/java.io.ObjectInputStream.readSerialData(Unknown Source)

at java.base/java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)

at java.base/java.io.ObjectInputStream.readObject0(Unknown Source)

at java.base/java.io.ObjectInputStream.defaultReadFields(Unknown Source)

at java.base/java.io.ObjectInputStream.readSerialData(Unknown Source)

at java.base/java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)

at java.base/java.io.ObjectInputStream.readObject0(Unknown Source)

at java.base/java.io.ObjectInputStream.defaultReadFields(Unknown Source)

at java.base/java.io.ObjectInputStream.readSerialData(Unknown Source)

at java.base/java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)

at java.base/java.io.ObjectInputStream.readObject0(Unknown Source)

at java.base/java.io.ObjectInputStream.readObject(Unknown Source)

at java.base/java.io.ObjectInputStream.readObject(Unknown Source)

at com.inductiveautomation.ignition.gateway.cluster.ClusterUtil.deserializeObject(ClusterUtil.java:96)

at com.inductiveautomation.ignition.gateway.cluster.ClusterUtil.deserializeObject(ClusterUtil.java:56)

at com.inductiveautomation.ignition.gateway.cluster.ClusterUtil.unzipAndDeserializeObject(ClusterUtil.java:90)

at com.inductiveautomation.ignition.gateway.history.stores.AbstractDatasourceStore.deserializeObject(AbstractDatasourceStore.java:514)

at com.inductiveautomation.ignition.gateway.history.stores.AbstractDatasourceStore.loadTransactions(AbstractDatasourceStore.java:587)

at com.inductiveautomation.ignition.gateway.history.stores.AbstractDatasourceStore.syncdTakeNext(AbstractDatasourceStore.java:530)

at com.inductiveautomation.ignition.gateway.history.stores.AbstractStore.takeNext(AbstractStore.java:213)

at com.inductiveautomation.ignition.gateway.history.stores.MultiStageStore.syncdTakeNext(MultiStageStore.java:165)

at com.inductiveautomation.ignition.gateway.history.stores.AbstractStore.takeNext(AbstractStore.java:213)

at com.inductiveautomation.ignition.gateway.history.forwarders.ForwarderThread.synchedTakeNext(ForwarderThread.java:200)

at com.inductiveautomation.ignition.gateway.history.forwarders.RedundancyAwareForwarder.synchedTakeNext(RedundancyAwareForwarder.java:68)

at com.inductiveautomation.ignition.gateway.history.forwarders.ForwarderThread.run(ForwarderThread.java:139)