KB Article #191800
Different Bouncy Castle library version for inline-process
Problem
-- During upgrade to version 2.6 UP2025-05 customer encountered following errors:
2025-06-10 11:33:29,790 - INFO [Startup] (ClusterControllerImpl) - Node cjiblx090330_cn, of type CN is connecting to the cluster
2025-06-10 11:33:29,923 - INFO [Startup] (SecretKeyFileManager) - ACF secret key initialized from path: /data/axw_r17/common/conf/acfSecurity/key.bin
2025-06-10 11:33:30,064 - INFO [Startup] (AcceptorThread) - Listening for node connections on port 47001
2025-06-10 11:33:30,391 - FATAL [Startup] (ConnectionManagerImpl) - Error while getting a database connection
org.postgresql.util.PSQLException: SSL error: class org.bouncycastle.jcajce.provider.asymmetric.edec.BCXDHPublicKey cannot be cast to class java.security.interfaces.XECPublicKey (org.bouncycastle.jcajce.provider.asymmetric.edec.BCXDHPublicKey is in unnamed module of loader com.axway.clusterold.startup.StartupLoader @27f9e982; java.security.interfaces.XECPublicKey is in module java.base of loader 'bootstrap')
................................................................................................................
Resolution
* after several tests and assumptions it was discovered that a different version of BouncyCastle library was used in customer's inline-process script.
E.g.
bcprov-jdk18on:1.78.1 it’s on the runtime classpath of Interchange when the inline JAR is loaded, but Interchange itself use bcprov 1.76 in multiple places, therefore, when two BC (BouncyCastle) versions are used, then TLS/provider could make a confusion and do not work.
* use the same library versions and if you identify multiple versions please keep just one (preferably the newest one).