SerializationException: Error during serialization for property 'contentPane' on object '[FPMIWindow]TestWindow'

Hello,

I have a problem where if I create a new window, add a button (or other components) and attempt to save, I get the following error:

com.inductiveautomation.ignition.common.xmlserialization.SerializationException: Error during serialization for property 'contentPane' on object '[FPMIWindow]TestWindow'
	at com.inductiveautomation.ignition.common.xmlserialization.serialization.DefaultObjectSerializationDelegate.serializeProperties(DefaultObjectSerializationDelegate.java:157)
	at com.inductiveautomation.factorypmi.designer.xmlserialization.WindowDelegate.serialize(WindowDelegate.java:34)
	at com.inductiveautomation.ignition.common.xmlserialization.serialization.XMLSerializationContext.serialize(XMLSerializationContext.java:53)
	at com.inductiveautomation.ignition.common.xmlserialization.serialization.XMLSerializer.serialize(XMLSerializer.java:529)
	at com.inductiveautomation.ignition.common.xmlserialization.serialization.XMLSerializer.serializeBinary(XMLSerializer.java:510)
	at com.inductiveautomation.factorypmi.designer.workspace.WindowWorkspace.saveContainer(WindowWorkspace.java:1839)
	at com.inductiveautomation.factorypmi.designer.workspace.WindowWorkspace.commitDesignable(WindowWorkspace.java:1540)
	at com.inductiveautomation.factorypmi.designer.workspace.WindowWorkspace.commitAll(WindowWorkspace.java:1097)
	at com.inductiveautomation.factorypmi.designer.model.VisionDesignerImpl.notifyProjectSaveStart(VisionDesignerImpl.java:617)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner.commitAll(IgnitionDesigner.java:1610)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner.handleSave(IgnitionDesigner.java:1375)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner$Handler.handleSaveAction(IgnitionDesigner.java:2822)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner$Handler$5.actionPerformed(IgnitionDesigner.java:2402)
	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.AbstractButton.doClick(Unknown Source)
	at java.desktop/javax.swing.AbstractButton.doClick(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Actions.actionPerformed(Unknown Source)
	at java.desktop/javax.swing.SwingUtilities.notifyAction(Unknown Source)
	at java.desktop/javax.swing.JComponent.processKeyBinding(Unknown Source)
	at java.desktop/javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(Unknown Source)
	at java.desktop/javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(Unknown Source)
	at java.desktop/javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(Unknown Source)
	at java.desktop/javax.swing.JMenuBar.processKeyBinding(Unknown Source)
	at java.desktop/javax.swing.KeyboardManager.fireBinding(Unknown Source)
	at java.desktop/javax.swing.KeyboardManager.fireKeyboardAction(Unknown Source)
	at java.desktop/javax.swing.JComponent.processKeyBindingsForAllComponents(Unknown Source)
	at java.desktop/javax.swing.JComponent.processKeyBindings(Unknown Source)
	at java.desktop/javax.swing.JComponent.processKeyEvent(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.KeyboardFocusManager.redispatchEvent(Unknown Source)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(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.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: com.inductiveautomation.ignition.common.xmlserialization.SerializationException: Error during serialization for property 'font' on object '[PMIButton]PMIButton: Button'
	at com.inductiveautomation.ignition.common.xmlserialization.serialization.DefaultObjectSerializationDelegate.serializeProperties(DefaultObjectSerializationDelegate.java:157)
	at com.inductiveautomation.factorypmi.designer.xmlserialization.DefaultComponentDelegate.serializeProperties(DefaultComponentDelegate.java:112)
	at com.inductiveautomation.ignition.common.xmlserialization.serialization.DefaultObjectSerializationDelegate.serialize(DefaultObjectSerializationDelegate.java:184)
	at com.inductiveautomation.ignition.common.xmlserialization.serialization.XMLSerializationContext.serialize(XMLSerializationContext.java:53)
	at com.inductiveautomation.ignition.common.xmlserialization.serialization.DefaultObjectSerializationDelegate.writeCall(DefaultObjectSerializationDelegate.java:90)
	at com.inductiveautomation.factorypmi.designer.xmlserialization.BasicContainerDelegate.serializeProperties(BasicContainerDelegate.java:120)
	at com.inductiveautomation.factorypmi.designer.xmlserialization.BasicContainerDelegate.serialize(BasicContainerDelegate.java:45)
	at com.inductiveautomation.ignition.common.xmlserialization.serialization.XMLSerializationContext.serialize(XMLSerializationContext.java:53)
	at com.inductiveautomation.ignition.common.xmlserialization.serialization.DefaultObjectSerializationDelegate.writeCall(DefaultObjectSerializationDelegate.java:90)
	at com.inductiveautomation.ignition.common.xmlserialization.serialization.DefaultObjectSerializationDelegate.writeCall(DefaultObjectSerializationDelegate.java:77)
	at com.inductiveautomation.ignition.common.xmlserialization.serialization.DefaultObjectSerializationDelegate.doProperty(DefaultObjectSerializationDelegate.java:134)
	at com.inductiveautomation.ignition.common.xmlserialization.serialization.DefaultObjectSerializationDelegate.serializeProperties(DefaultObjectSerializationDelegate.java:155)
	... 61 more
Caused by: com.inductiveautomation.ignition.common.xmlserialization.SerializationException: Unable to create clean copy of class de.javasoft.plaf.synthetica.ScalableFont
	at com.inductiveautomation.ignition.common.xmlserialization.serialization.XMLSerializer.getCleanCopy(XMLSerializer.java:595)
	at com.inductiveautomation.ignition.common.xmlserialization.serialization.XMLSerializationContext.getCleanCopy(XMLSerializationContext.java:75)
	at com.inductiveautomation.ignition.common.xmlserialization.serialization.DefaultObjectSerializationDelegate.serializeProperties(DefaultObjectSerializationDelegate.java:147)
	at com.inductiveautomation.ignition.common.xmlserialization.serialization.DefaultObjectSerializationDelegate.serialize(DefaultObjectSerializationDelegate.java:184)
	at com.inductiveautomation.ignition.common.xmlserialization.serialization.XMLSerializationContext.serialize(XMLSerializationContext.java:53)
	at com.inductiveautomation.ignition.common.xmlserialization.serialization.DefaultObjectSerializationDelegate.writeCall(DefaultObjectSerializationDelegate.java:90)
	at com.inductiveautomation.ignition.common.xmlserialization.serialization.DefaultObjectSerializationDelegate.writeCall(DefaultObjectSerializationDelegate.java:77)
	at com.inductiveautomation.ignition.common.xmlserialization.serialization.DefaultObjectSerializationDelegate.doProperty(DefaultObjectSerializationDelegate.java:134)
	at com.inductiveautomation.ignition.common.xmlserialization.serialization.DefaultObjectSerializationDelegate.serializeProperties(DefaultObjectSerializationDelegate.java:155)
	... 72 more

Ignition v8.1.25 (b2023021409)
Java: Azul Systems, Inc. 11.0.17

I checked the forums and found people with serialization exception errors, however, in their cases it seemed to be an issue where there was a mismatch between a property's type and the type they were trying to bind it to.

I've tried changing the font of the button, but that didn't help.

I've also tried clearing the cache.

It allows you to save the window if there are no components added?

Yes that's correct

It looks like this error happens when I try to save any other pre-existing window as well.

I've seen this issue on edge vision templates for years. Restart the edge gateway and it usually clears.