ERROR: Uncaught Exception from thread Thread-17, error=Not on FX application thread
- The error:

```
[Thread-17] ERROR haveno.common.setup.CommonSetup: Uncaught Exception from thread Thread-17, error=Not on FX application thread; currentThread = Thread-17

java.lang.IllegalStateException: Not on FX application thread; currentThread = Thread-17
        at javafx.graphics/com.sun.javafx.tk.Toolkit.checkFxUserThread(Toolkit.java:294)
        at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.checkFxUserThread(QuantumToolkit.java:475)
        at javafx.graphics/javafx.scene.Parent$3.onProposedChange(Parent.java:475)
        at javafx.base/com.sun.javafx.collections.VetoableListDecorator.add(VetoableListDecorator.java:326)
        at com.jfoenix.skins.JFXTabPaneSkin$HeaderContainer.addTab(JFXTabPaneSkin.java:601)
        at com.jfoenix.skins.JFXTabPaneSkin$HeaderContainer.access$300(JFXTabPaneSkin.java:399)
        at com.jfoenix.skins.JFXTabPaneSkin.addTabs(JFXTabPaneSkin.java:212)
        at com.jfoenix.skins.JFXTabPaneSkin.lambda$new$2(JFXTabPaneSkin.java:170)
        at javafx.base/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:327)
        at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:71)
        at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:246)
        at javafx.base/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
        at javafx.base/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
        at javafx.base/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:210)
        at javafx.base/javafx.collections.ModifiableObservableListBase.add(ModifiableObservableListBase.java:200)
        at java.base/java.util.AbstractList.add(AbstractList.java:113)
        at haveno.desktop.main.portfolio.PortfolioView.lambda$activate$3(PortfolioView.java:144)
        at javafx.base/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:162)
        at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:71)
        at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:246)
        at javafx.base/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
        at javafx.base/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
        at javafx.base/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:210)
        at javafx.base/javafx.collections.ModifiableObservableListBase.add(ModifiableObservableListBase.java:200)
        at java.base/java.util.AbstractList.add(AbstractList.java:113)
        at haveno.common.proto.persistable.PersistableList.add(PersistableList.java:54)
        at haveno.core.trade.failed.FailedTradesManager.add(FailedTradesManager.java:88)
        at haveno.core.trade.TradeManager.onMoveInvalidTradeToFailedTrades(TradeManager.java:1041)
        at haveno.core.trade.Trade.onProtocolError(Trade.java:1599)
        at haveno.core.trade.TradeManager.lambda$initPersistedTrades$11(TradeManager.java:485)
        at java.base/java.lang.Thread.run(Thread.java:1583)
```
Apparently, the code attempts to modify a JavaFX UI component from a non-UI thread. JavaFX requires that all updates to UI elements occur on the JavaFX Application Thread.