Exchange rates are not updated since 2015

Just checking—did you get the update and then forget to reboot when you found the problem?

after update, I restarted PP as PP suggest, then found the exchange problem from higher than usual in Statement of Assets. I restarted my PC 1 time and the problem still persisted, then posted here.
Then I do uninstall, delete PP file in drive C, re-install, restart.
The problem still persisted. PP just corrected itself after some close and re-open PP. don’t know why

After random, many close and reopen PP. I have the error now, but exchange rates is still correct this time.

error.txt (4.1 KB)

EDIT : It disappeared after close and reopen. very random

Thanks for the error log, I’ve proposed a fix to GitHub:

The open close pethod sometimes works, but I keep having the same issue here as well, but I have another error :

Yoy could post the raw text from this error message rather than an image, if a solution is your intention.

Woops yes. The content is the following :

Thu Jul 16 00:51:56 JST 2026
Problems occurred when invoking code from plug-in: "org.eclipse.equinox.app".

java.lang.NoClassDefFoundError: org/eclipse/swt/accessibility/AccessibleObject
at org.eclipse.equinox.launcher.JNIBridge._takedown_splash(Native Method)
at org.eclipse.equinox.launcher.JNIBridge.takeDownSplash(JNIBridge.java:137)
at org.eclipse.equinox.launcher.Main.takeDownSplash(Main.java:2097)
at org.eclipse.equinox.launcher.Main$SplashHandler.run(Main.java:159)
at org.eclipse.core.runtime.internal.adaptor.DefaultStartupMonitor.applicationRunning(DefaultStartupMonitor.java:72)
at org.eclipse.equinox.internal.app.EclipseAppHandle$1.run(EclipseAppHandle.java:307)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
at org.eclipse.equinox.internal.app.EclipseAppHandle.applicationRunning(EclipseAppHandle.java:295)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1097)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1051)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:168)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:219)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:149)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:115)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:467)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:298)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:615)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:563)
at org.eclipse.equinox.launcher.Main.run(Main.java:1415)
at org.eclipse.equinox.launcher.Main.main(Main.java:1387)
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.accessibility.AccessibleObject
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
... 24 more

Looks like you are running linux, but which one?
How did you install PP?

Every Linux user gets this message. Just ignore it.

Okay thank you.

@Sn1kk3r5 this is Nobara (fork of Fedora)

So I have investigated a bit about this matter and here is what I discovered:

I first tried to get on European Central Bank which I could not. I then turned on my VPN to be located in EU (France), could reach this page and could have the up-to-date quotations in PP.

Turned the VPN off, expected to have both the ECB site and PP down, but I actually could still browse to the ECB, which implicitly tells me that accessing the ECB page itself is not a relevant criteria.

Then I tried to download the csv file that PP scraps the quotations from :

IPv6 : curl -v -o /dev/null ``https://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist.zip

IPv4 : curl -4 -v -o /dev/null ``https://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist.zip

Both failing to download.

I then tried with http1.1 (IPv4) :

curl -4 -v --http1.1 -o /tmp/test.zip ``https://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist.zip

There I could download the history (zip with a csv file in it).

I thought this could be a solution, but when I tried to download it again, it fails (5 times in a row, within 15 minutes, hanging on 235 bytes).

Then I tried another time and it could be downloaded again. I check the logs of the curl command I ran and noticed the only difference is to be found at the bottom and there we may have the culprit : myracloud. (Logs are here : File sharing and storage made simple ,the red line is where it either stops or where it goes until download completion)

I’m not familiar with myacloud and its routing towards Asia (I’m in Japan), but it may be clunky enough to fail.

I don’t know how to troubleshoot more than that except by turning on the VPN each time I need to use PP for now.

I auto-updated to version 0.86. After close and re-open PP, now I have exchange-rate problem again :worried:

Thu Jul 16 21:30:04 ICT 2026
javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1457695]
Message: Premature EOF

java.io.IOException: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1457695]
Message: Premature EOF
at name.abuchen.portfolio.money.impl.ECBUpdater.update(ECBUpdater.java:106)
at name.abuchen.portfolio.money.impl.ECBExchangeRateProvider.update(ECBExchangeRateProvider.java:109)
at name.abuchen.portfolio.ui.addons.StartupAddon$UpdateExchangeRatesJob.updateOnline(StartupAddon.java:116)
at name.abuchen.portfolio.ui.addons.StartupAddon$UpdateExchangeRatesJob.run(StartupAddon.java:73)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1457695]
Message: Premature EOF
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(Unknown Source)
at name.abuchen.portfolio.money.impl.ECBUpdater.readCubes(ECBUpdater.java:137)
at name.abuchen.portfolio.money.impl.ECBUpdater.update(ECBUpdater.java:100)
... 4 more

EDIT : After restart my PC, The problem still persist, but this time without error in error-log

maybe I have to postpone every future update now :cry: I only use old basic feature anyway

Logs in any image format are so annoying. What on earth’s wrong with text?

The latest updates had nothing to do with the ECB after all.

I think the problem is that shitty myracloud solution on ecb-site. From which provider you get your IP? Maybe it helps to use VPN like @K_A?

This is in case of a successful download :

curl -4 -v --http1.1 -o /tmp/test.zip ``https://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist.zip
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 0* Host www.ecb.europa.eu:443 was resolved.
* IPv6: (none)
* IPv4: 80.90.16.91
* Trying 80.90.16.91:443…
* ALPN: curl offers http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1573 bytes data]
* SSL Trust Anchors:
* CAfile: /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [1210 bytes data]
* TLSv1.3 (IN), TLS change cipher, Change cipher spec (1):
{ [1 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [25 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [3923 bytes data]
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
{ [78 bytes data]
* TLSv1.3 (IN), TLS handshake, Finished (20):
{ [52 bytes data]
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
} [1 bytes data]
* TLSv1.3 (OUT), TLS handshake, Finished (20):
} [52 bytes data]
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / X25519MLKEM768 / id-ecPublicKey
* ALPN: server accepted http/1.1
* Server certificate:
* subject: C=DE; ST=Hessen; O=European Central Bank; CN=www.ecb.europa.eu
* start date: Feb 12 00:00:00 2026 GMT
* expire date: Aug 30 23:59:59 2026 GMT
* issuer: C=GB; O=Sectigo Limited; CN=Sectigo Public Server Authentication CA OV E36
* Certificate level 0: Public key type EC/prime256v1 (256/128 Bits/secBits), signed using ecdsa-with-SHA256
* Certificate level 1: Public key type EC/prime256v1 (256/128 Bits/secBits), signed using ecdsa-with-SHA384
* Certificate level 2: Public key type EC/secp384r1 (384/192 Bits/secBits), signed using ecdsa-with-SHA384
* subjectAltName: “www.ecb.europa.eu” matches cert’s “www.ecb.europa.eu”
* SSL certificate verified via OpenSSL.
* Established connection to www.ecb.europa.eu (80.90.16.91 port 443) from 192.168.1.23 port 55994
* using HTTP/1.x
} [5 bytes data]

GET /stats/eurofxref/eurofxref-hist.zip HTTP/1.1
Host: www.ecb.europa.eu
User-Agent: curl/8.18.0
Accept: */*

* Request completely sent off
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [230 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [230 bytes data]
0 0 0 0 0 0 0 0 00:01 0< HTTP/1.1 200 OK
< Server: myracloud
< Date: Thu, 16 Jul 2026 15:39:54 GMT
< Content-Type: application/zip
< Transfer-Encoding: chunked
< Connection: keep-alive
< X-Frame-Options: SAMEORIGIN
< Strict-Transport-Security: max-age=63072000; includeSubDomains
< Last-Modified: Thu, 16 Jul 2026 13:56:23 GMT
< X-XSS-Protection: 1; mode=block
< Expires: Thu, 16 Jul 2026 14:06:59 GMT
< cache-control: max-age=300
< X-CDN: 1
<
{ [15976 bytes data]
100 620.5k 0 620.5k 0 0 349.1k 0 00:01 349.0k
* Connection #0 to host www.ecb.europa.eu:443 left intact

My ISP is “True”, Thailand. Tried Proton VPN free server to Netherlands and exchange-rates is working now.

I don’t know how thing works in the back-end. Why don’t PP use exchange-rate from Yahoo Finance like instruments?. Is it better than ECB?

Because ECB ist the origin source.

Not mega urgent matter, but it would be good to have a “reload” button or something to update the rates rather than opening/closing each time, or a free choice for the rate source.

Thank, This is a perfect solution for me.

Oh thanx @Rafa will do that way too.

The converter uses the “custom” exchange rates (those added manually), I’m assuming the ECB one is just taken by default when none is entered.