Problem: sending to partner "mypartneras2" HTTPS url with wrong or missing SSL certificate failed
Expected behavior: file moved to data/outbox/mypartneras2/error/
Actual behavior: message sending failed is detected (state_msg=Message sending failed) but file moved to data/sent like a successful transmission
2026-04-09 18:59:43.264 [AS2DirectoryPollingModule] DEBUG org.openas2.processor.DefaultProcessor - Processor searching for module handler for action: track_msg
2026-04-09 18:59:43.265 [AS2DirectoryPollingModule] INFO org.openas2.processor.sender.AS2SenderModule - Connecting to: https://mypartneras2.com:4443 [<OPENAS2-20260409185943+0200-b124c732-d107-4ed5-8dc2-6b25c44423a7-me_mypartneras2>]
2026-04-09 18:59:43.265 [Thread-2025] DEBUG org.openas2.processor.msgtracking.DbTrackingModule - Tracking record successfully persisted to database: {state_msg=Message sending started, is_resend=N, receiver_id=mypartneras2, file_name=file_name_0, resend_count=0, sender_id=me, content_transfer_encoding=null, content_type=application/EDI-X12, sent_file_name=file_name_0, prior_msg_id=null, signature_algorithm=sha256, mdn_mode=SYNC, encryption_algorithm=3des, state=msg_send_start, msg_id=<OPENAS2-20260409185943+0200-b124c732-d107-4ed5-8dc2-6b25c44423a7-me_mypartneras2>, compression=null, direction=SEND, status=sending_msg}
2026-04-09 18:59:43.442 [AS2DirectoryPollingModule] ERROR org.openas2.processor.sender.AS2SenderModule - Failed to connect to partner using SSL certificate. Please run the SSL certificate checker utility to identify the issue: https://mypartneras2.com:4443
javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:130)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:383)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:326)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:321)
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:647)
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:467)
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:363)
at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393)
at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476)
at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447)
at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:206)
at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)
at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1506)
at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1421)
at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455)
at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426)
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:436)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.upgrade(DefaultHttpClientConnectionOperator.java:191)
at org.apache.http.impl.conn.BasicHttpClientConnectionManager.upgrade(BasicHttpClientConnectionManager.java:325)
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:428)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at org.openas2.util.HTTPUtil.execRequest(HTTPUtil.java:411)
at org.openas2.processor.sender.AS2SenderModule.sendMessage(AS2SenderModule.java:194)
at org.openas2.processor.sender.AS2SenderModule.handle(AS2SenderModule.java:134)
at org.openas2.processor.DefaultProcessor.handle(DefaultProcessor.java:55)
at org.openas2.processor.receiver.MessageBuilderModule.processDocument(MessageBuilderModule.java:241)
at org.openas2.processor.receiver.MessageBuilderModule.processDocument(MessageBuilderModule.java:122)
at org.openas2.processor.receiver.DirectoryPollingModule.processFile(DirectoryPollingModule.java:309)
at org.openas2.processor.receiver.DirectoryPollingModule.processSingleFile(DirectoryPollingModule.java:212)
at org.openas2.processor.receiver.DirectoryPollingModule.updateTracking(DirectoryPollingModule.java:288)
at org.openas2.processor.receiver.DirectoryPollingModule.poll(DirectoryPollingModule.java:122)
at org.openas2.processor.receiver.PollingModule$PollTask.run(PollingModule.java:61)
at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
at java.base/java.util.TimerThread.run(Timer.java:516)
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:388)
at java.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:271)
at java.base/sun.security.validator.Validator.validate(Validator.java:256)
at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:230)
at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132)
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:631)
... 34 common frames omitted
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:148)
at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:129)
at java.base/java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297)
at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:383)
... 39 common frames omitted
2026-04-09 18:59:43.504 [AS2DirectoryPollingModule] DEBUG org.openas2.processor.DefaultProcessor - Processor searching for module handler for action: track_msg
2026-04-09 18:59:43.526 [AS2DirectoryPollingModule] DEBUG org.openas2.processor.receiver.MessageBuilderModule - Calling AS2Util.cleanupFiles from processDocument method.
2026-04-09 18:59:43.526 [AS2DirectoryPollingModule] DEBUG org.openas2.util.IOUtil - Deleted file /OpenAS2/bin/../config/../data/pendinginfoMDN3/OPENAS2-20260409185943+0200-b124c732-d107-4ed5-8dc2-6b25c44423a7-me_mypartneras2
2026-04-09 18:59:43.526 [AS2DirectoryPollingModule] DEBUG org.openas2.util.IOUtil - Deleted file /OpenAS2/bin/../config/../data/pendingMDN3/OPENAS2-20260409185943+0200-b124c732-d107-4ed5-8dc2-6b25c44423a7-me_mypartneras2.object
2026-04-09 18:59:43.541 [AS2DirectoryPollingModule] DEBUG org.openas2.util.IOUtil - Moved file atomically from /OpenAS2/bin/../config/../data/pendingMDN3/OPENAS2-20260409185943+0200-b124c732-d107-4ed5-8dc2-6b25c44423a7-me_mypartneras2 to /OpenAS2/bin/../config/../data/sent/2026/file_name_0-OPENAS2-20260409185943+0200-b124c732-d107-4ed5-8dc2-6b25c44423a7-me_mypartneras2
2026-04-09 18:59:43.541 [AS2DirectoryPollingModule] DEBUG org.openas2.util.AS2Util - Pending MDN MSG FILE file /OpenAS2/bin/../config/../data/pendingMDN3/OPENAS2-20260409185943+0200-b124c732-d107-4ed5-8dc2-6b25c44423a7-me_mypartneras2 moved to /OpenAS2/bin/../config/../data/sent/2026/file_name_0-OPENAS2-20260409185943+0200-b124c732-d107-4ed5-8dc2-6b25c44423a7-me_mypartneras2 [<OPENAS2-20260409185943+0200-b124c732-d107-4ed5-8dc2-6b25c44423a7-me_mypartneras2>]
2026-04-09 18:59:43.541 [Thread-2026] DEBUG org.openas2.processor.msgtracking.DbTrackingModule - Tracking record successfully persisted to database: {state_msg=Message sending failed., is_resend=N, receiver_id=mypartneras2, file_name=file_name_0, resend_count=0, sender_id=nexi, content_transfer_encoding=null, content_type=application/EDI-X12, sent_file_name=file_name_0, prior_msg_id=null, signature_algorithm=sha256, mdn_mode=SYNC, encryption_algorithm=3des, state=msg_send_fail, msg_id=<OPENAS2-20260409185943+0200-b124c732-d107-4ed5-8dc2-6b25c44423a7-me_mypartneras2>, compression=null, direction=SEND, status=sending_msg}
Problem: sending to partner "mypartneras2" HTTPS url with wrong or missing SSL certificate failed
Expected behavior: file moved to data/outbox/mypartneras2/error/
Actual behavior: message sending failed is detected (state_msg=Message sending failed) but file moved to data/sent like a successful transmission
Excerpt from debug log: