app-store-server-library-java icon indicating copy to clipboard operation
app-store-server-library-java copied to clipboard

Verification failed with status INVALID_CHAIN

Open hakusai22 opened this issue 1 year ago • 9 comments

{"response":{"body":"{\"errorCode\":10001,\"errorMsg\":\"com.apple.itunes.storekit.verification.VerificationException: Verification failed with status INVALID_CHAIN\"}","status":500},

hello Today, May 23rd 2024, 10:02:30.861 to May 23rd 2024, 13:51:27.308 (time zone is UTC+8) Our subscription callbacks encountered a large number of Verification failed with status INVALID_CHAIN. Not all callbacks are It failed. I want to know if Apple development has made any changes? And I didn’t see the specific reason from the source code library. The impact is to directly catch the INVALID_CHAIN exception.

image image

hakusai22 avatar May 23 '24 06:05 hakusai22

@hakusai22 Could you file a ticket in Feedback Assistant and post the FB number here with one or more of the values you saw?

alexanderjordanbaker avatar May 23 '24 06:05 alexanderjordanbaker

@hakusai22 Could you file a ticket in Feedback Assistant and post the FB number here with one or more of the values you saw?

FB13807203

hakusai22 avatar May 23 '24 06:05 hakusai22

@hakusai22 Sorry, the signed data that gave the error, not the output of the library.

alexanderjordanbaker avatar May 23 '24 07:05 alexanderjordanbaker

@hakusai22 Sorry, the signed data that gave the error, not the output of the library.

But my local unit test can be parsed successfully, and now the online environment has stopped causing exceptions.😭

hakusai22 avatar May 23 '24 07:05 hakusai22

@hakusai22 Could you add your app's bundle id to the ticket?

alexanderjordanbaker avatar May 23 '24 07:05 alexanderjordanbaker

@hakusai22 Could you add your app's bundle id to the ticket?

Sent to FB13807203

hakusai22 avatar May 23 '24 07:05 hakusai22

@alexanderjordanbaker I found the reason. Our connection timed out. This machine is not in us/eu but in China. Is there any solution?

cn.lollypop.common.base.exception.LollypopServerException: com.apple.itunes.storekit.verification.VerificationException: Verification failed with status INVALID_CHAIN
	at cn.lollypop.www.lollypopv2mallserver.client.appstorepay.AppStorePayClientV2.verifyAndDecodeNotification(AppStorePayClientV2.java:334) ~[classes!/:1.0-SNAPSHOT]
	at cn.lollypop.www.lollypopv2mallserver.client.appstorepay.StoreKit2Service.resolveAppStoreCallbackBusiness(StoreKit2Service.java:673) ~[classes!/:1.0-SNAPSHOT]
	at cn.lollypop.www.lollypopv2mallserver.rpc.MallServiceImpl.resolveAppStoreCallbackV2(MallServiceImpl.java:6949) ~[classes!/:1.0-SNAPSHOT]
	at jdk.internal.reflect.GeneratedMethodAccessor468.invoke(Unknown Source) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) ~[spring-aop-6.0.4.jar!/:6.0.4]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.0.4.jar!/:6.0.4]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.0.4.jar!/:6.0.4]
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:752) ~[spring-aop-6.0.4.jar!/:6.0.4]
	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) ~[spring-aop-6.0.4.jar!/:6.0.4]
	at cn.lollypop.www.lollypopv2base.aop.StopWatchAspect.around(StopWatchAspect.java:38) ~[lollypop-v2-base-1.0-SNAPSHOT.jar!/:1.0-SNAPSHOT]
	at jdk.internal.reflect.GeneratedMethodAccessor147.invoke(Unknown Source) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:633) ~[spring-aop-6.0.4.jar!/:6.0.4]
	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:623) ~[spring-aop-6.0.4.jar!/:6.0.4]
	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71) ~[spring-aop-6.0.4.jar!/:6.0.4]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:173) ~[spring-aop-6.0.4.jar!/:6.0.4]
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:752) ~[spring-aop-6.0.4.jar!/:6.0.4]
	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-6.0.4.jar!/:6.0.4]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.0.4.jar!/:6.0.4]
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:752) ~[spring-aop-6.0.4.jar!/:6.0.4]
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703) ~[spring-aop-6.0.4.jar!/:6.0.4]
	at cn.lollypop.www.lollypopv2mallserver.rpc.MallServiceImpl$$SpringCGLIB$$0.resolveAppStoreCallbackV2(<generated>) ~[classes!/:1.0-SNAPSHOT]
	at cn.lollypop.rpc.service.mall.MallGrpc$MethodHandlers.invoke(MallGrpc.java:20972) ~[lollypop-proto-1.0-SNAPSHOT.jar!/:?]
	at io.grpc.stub.ServerCalls$UnaryServerCallHandler$UnaryServerCallListener.onHalfClose(ServerCalls.java:182) ~[grpc-stub-1.51.0.jar!/:1.51.0]
	at io.grpc.PartialForwardingServerCallListener.onHalfClose(PartialForwardingServerCallListener.java:35) ~[grpc-api-1.51.0.jar!/:1.51.0]
	at io.grpc.ForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:23) ~[grpc-api-1.51.0.jar!/:1.51.0]
	at io.grpc.ForwardingServerCallListener$SimpleForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:40) ~[grpc-api-1.51.0.jar!/:1.51.0]
	at io.grpc.Contexts$ContextualizedServerCallListener.onHalfClose(Contexts.java:86) ~[grpc-api-1.51.0.jar!/:1.51.0]
	at cn.lollypop.www.lollypopv2base.interceptor.server.LollypopListener.onHalfClose(LollypopListener.java:43) ~[lollypop-v2-base-1.0-SNAPSHOT.jar!/:1.0-SNAPSHOT]
	at io.grpc.PartialForwardingServerCallListener.onHalfClose(PartialForwardingServerCallListener.java:35) ~[grpc-api-1.51.0.jar!/:1.51.0]
	at io.grpc.ForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:23) ~[grpc-api-1.51.0.jar!/:1.51.0]
	at io.grpc.ForwardingServerCallListener$SimpleForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:40) ~[grpc-api-1.51.0.jar!/:1.51.0]
	at io.grpc.Contexts$ContextualizedServerCallListener.onHalfClose(Contexts.java:86) ~[grpc-api-1.51.0.jar!/:1.51.0]
	at io.grpc.PartialForwardingServerCallListener.onHalfClose(PartialForwardingServerCallListener.java:35) ~[grpc-api-1.51.0.jar!/:1.51.0]
	at io.grpc.ForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:23) ~[grpc-api-1.51.0.jar!/:1.51.0]
	at io.grpc.ForwardingServerCallListener$SimpleForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:40) ~[grpc-api-1.51.0.jar!/:1.51.0]
	at org.apache.skywalking.apm.plugin.grpc.v1.server.TracingServerCallListener.onHalfClose(TracingServerCallListener.java:101) ~[?:?]
	at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.halfClosed(ServerCallImpl.java:355) ~[grpc-core-1.51.0.jar!/:1.51.0]
	at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1HalfClosed.runInContext(ServerImpl.java:867) ~[grpc-core-1.51.0.jar!/:1.51.0]
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) ~[grpc-core-1.51.0.jar!/:1.51.0]
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133) ~[grpc-core-1.51.0.jar!/:1.51.0]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
	at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: com.apple.itunes.storekit.verification.VerificationException: Verification failed with status INVALID_CHAIN
	at com.apple.itunes.storekit.verification.ChainVerifier.verifyChain(ChainVerifier.java:85) ~[app-store-server-library-2.0.0.jar!/:?]
	at com.apple.itunes.storekit.verification.SignedDataVerifier.decodeSignedObject(SignedDataVerifier.java:180) ~[app-store-server-library-2.0.0.jar!/:?]
	at com.apple.itunes.storekit.verification.SignedDataVerifier.verifyAndDecodeNotification(SignedDataVerifier.java:107) ~[app-store-server-library-2.0.0.jar!/:?]
	at cn.lollypop.www.lollypopv2mallserver.client.appstorepay.AppStorePayClientV2.verifyAndDecodeNotification(AppStorePayClientV2.java:332) ~[classes!/:1.0-SNAPSHOT]
	... 46 more
Caused by: java.security.cert.CertPathValidatorException: Unable to determine revocation status due to network error
	at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:135) ~[?:?]
	at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:224) ~[?:?]
	at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:144) ~[?:?]
	at sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:83) ~[?:?]
	at java.security.cert.CertPathValidator.validate(CertPathValidator.java:309) ~[?:?]
	at com.apple.itunes.storekit.verification.ChainVerifier.verifyChain(ChainVerifier.java:82) ~[app-store-server-library-2.0.0.jar!/:?]
	at com.apple.itunes.storekit.verification.SignedDataVerifier.decodeSignedObject(SignedDataVerifier.java:180) ~[app-store-server-library-2.0.0.jar!/:?]
	at com.apple.itunes.storekit.verification.SignedDataVerifier.verifyAndDecodeNotification(SignedDataVerifier.java:107) ~[app-store-server-library-2.0.0.jar!/:?]
	at cn.lollypop.www.lollypopv2mallserver.client.appstorepay.AppStorePayClientV2.verifyAndDecodeNotification(AppStorePayClientV2.java:332) ~[classes!/:1.0-SNAPSHOT]
	... 46 more
Caused by: java.net.ConnectException: Connection timed out
	at jdk.internal.reflect.GeneratedConstructorAccessor308.newInstance(Unknown Source) ~[?:?]
	at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
	at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
	at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?]
	at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:2048) ~[?:?]
	at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:2043) ~[?:?]
	at java.security.AccessController.doPrivileged(AccessController.java:569) ~[?:?]
	at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:2042) ~[?:?]
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1609) ~[?:?]
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589) ~[?:?]
	at sun.security.provider.certpath.OCSP.getOCSPBytes(OCSP.java:284) ~[?:?]
	at sun.security.provider.certpath.OCSP.check(OCSP.java:197) ~[?:?]
	at sun.security.provider.certpath.RevocationChecker.checkOCSP(RevocationChecker.java:785) ~[?:?]
	at sun.security.provider.certpath.RevocationChecker.check(RevocationChecker.java:369) ~[?:?]
	at sun.security.provider.certpath.RevocationChecker.check(RevocationChecker.java:343) ~[?:?]
	at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:125) ~[?:?]
	at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:224) ~[?:?]
	at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:144) ~[?:?]
	at sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:83) ~[?:?]
	at java.security.cert.CertPathValidator.validate(CertPathValidator.java:309) ~[?:?]
	at com.apple.itunes.storekit.verification.ChainVerifier.verifyChain(ChainVerifier.java:82) ~[app-store-server-library-2.0.0.jar!/:?]
	at com.apple.itunes.storekit.verification.SignedDataVerifier.decodeSignedObject(SignedDataVerifier.java:180) ~[app-store-server-library-2.0.0.jar!/:?]
	at com.apple.itunes.storekit.verification.SignedDataVerifier.verifyAndDecodeNotification(SignedDataVerifier.java:107) ~[app-store-server-library-2.0.0.jar!/:?]
	at cn.lollypop.www.lollypopv2mallserver.client.appstorepay.AppStorePayClientV2.verifyAndDecodeNotification(AppStorePayClientV2.java:332) ~[classes!/:1.0-SNAPSHOT]
	... 46 more
Caused by: java.net.ConnectException: Connection timed out
	at sun.nio.ch.Net.connect0(Native Method) ~[?:?]
	at sun.nio.ch.Net.connect(Net.java:579) ~[?:?]
	at sun.nio.ch.Net.connect(Net.java:568) ~[?:?]
	at sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588) ~[?:?]
	at java.net.Socket.connect(Socket.java:633) ~[?:?]
	at java.net.Socket.connect(Socket.java:583) ~[?:?]
	at sun.net.NetworkClient.doConnect(NetworkClient.java:183) ~[?:?]
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:532) ~[?:?]

hakusai22 avatar May 23 '24 08:05 hakusai22

@hakusai22 You can look at the causedBy field on the exception, and if it is a time out retry. Given all these were bunched up something got temporarily slower it appears, either on the OCSP server side or on your side.

alexanderjordanbaker avatar May 23 '24 08:05 alexanderjordanbaker

So the machine where our service is deployed times out when accessing CRL and OCSP?

used by: java.security.cert.CertPathValidatorException: Unable to determine revocation status due to network error
	at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:135) ~[?:?]
	at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:224) ~[?:?]
	at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:144) ~[?:?]
	at sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:83) ~[?:?]
	at java.security.cert.CertPathValidator.validate(CertPathValidator.java:309) ~[?:?]
	at com.apple.itunes.storekit.verification.ChainVerifier.verifyChain(ChainVerifier.java:82) ~[app-store-server-library-2.0.0.jar!/:?]
	at com.apple.itunes.storekit.verification.SignedDataVerifier.decodeSignedObject(SignedDataVerifier.java:180) ~[app-store-server-library-2.0.0.jar!/:?]
	at com.apple.itunes.storekit.verification.SignedDataVerifier.verifyAndDecodeNotification(SignedDataVerifier.java:107) ~[app-store-server-library-2.0.0.jar!/:?]
	at cn.lollypop.www.lollypopv2mallserver.client.appstorepay.AppStorePayClientV2.verifyAndDecodeNotification(AppStorePayClientV2.java:332) ~[classes!/:1.0-SNAPSHOT]
	... 46 more
Caused by: java.net.ConnectException: Connection timed out
	at jdk.internal.reflect.GeneratedConstructorAccessor308.newInstance(Unknown Source) ~[?:?]
	at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
	at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
	at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?]
	at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:2048) ~[?:?]
	at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:2043) ~[?:?]
	at java.security.AccessController.doPrivileged(AccessController.java:569) ~[?:?]
	at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:2042) ~[?:?]
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1609) ~[?:?]
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589) ~[?:?]
	at sun.security.provider.certpath.OCSP.getOCSPBytes(OCSP.java:284) ~[?:?]
	at sun.security.provider.certpath.OCSP.check(OCSP.java:197) ~[?:?]
	at sun.security.provider.certpath.RevocationChecker.checkOCSP(RevocationChecker.java:785) ~[?:?]
	at sun.security.provider.certpath.RevocationChecker.check(RevocationChecker.java:369) ~[?:?]
	at sun.security.provider.certpath.RevocationChecker.check(RevocationChecker.java:343) ~[?:?]
	at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:125) ~[?:?]
	at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:224) ~[?:?]
	at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:144) ~[?:?]
	at sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:83) ~[?:?]
	at java.security.cert.CertPathValidator.validate(CertPathValidator.java:309) ~[?:?]
	at com.apple.itunes.storekit.verification.ChainVerifier.verifyChain(ChainVerifier.java:82) ~[app-store-server-library-2.0.0.jar!/:?]
	at com.apple.itunes.storekit.verification.SignedDataVerifier.decodeSignedObject(SignedDataVerifier.java:180) ~[app-store-server-library-2.0.0.jar!/:?]
	at com.apple.itunes.storekit.verification.SignedDataVerifier.verifyAndDecodeNotification(SignedDataVerifier.java:107) ~[app-store-server-library-2.0.0.jar!/:?]
	at cn.lollypop.www.lollypopv2mallserver.client.appstorepay.AppStorePayClientV2.verifyAndDecodeNotification(AppStorePayClientV2.java:332) ~[classes!/:1.0-SNAPSHOT]
	... 46 more
Caused by: java.net.ConnectException: Connection timed out
	at sun.nio.ch.Net.connect0(Native Method) ~[?:?]
	at sun.nio.ch.Net.connect(Net.java:579) ~[?:?]
	at sun.nio.ch.Net.connect(Net.java:568) ~[?:?]
	at sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588) ~[?:?]
	at java.net.Socket.connect(Socket.java:633) ~[?:?]
	at java.net.Socket.connect(Socket.java:583) ~[?:?]
	at sun.net.NetworkClient.doConnect(NetworkClient.java:183) ~[?:?]
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:532) ~[?:?]
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:637) ~[?:?]
	at sun.net.www.http.HttpClient.<init>(HttpClient.java:280) ~[?:?]
	at sun.net.www.http.HttpClient.New(HttpClient.java:385) ~[?:?]
	at sun.net.www.http.HttpClient.New(HttpClient.java:407) ~[?:?]
	at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1309) ~[?:?]
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1242) ~[?:?]
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1128) ~[?:?]
	at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1057) ~[?:?]
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1665) ~[?:?]
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589) ~[?:?]
	at sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:3236) ~[?:?]
	at java.net.URLConnection.getHeaderFieldLong(URLConnection.java:637) ~[?:?]
	at java.net.URLConnection.getContentLengthLong(URLConnection.java:509) ~[?:?]
	at java.net.URLConnection.getContentLength(URLConnection.java:493) ~[?:?]
	at sun.security.provider.certpath.OCSP.getOCSPBytes(OCSP.java:279) ~[?:?]
	at sun.security.provider.certpath.OCSP.check(OCSP.java:197) ~[?:?]
	at sun.security.provider.certpath.RevocationChecker.checkOCSP(RevocationChecker.java:785) ~[?:?]
	at sun.security.provider.certpath.RevocationChecker.check(RevocationChecker.java:369) ~[?:?]
	at sun.security.provider.certpath.RevocationChecker.check(RevocationChecker.java:343) ~[?:?]
	at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:125) ~[?:?]
	at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:224) ~[?:?]
	at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:144) ~[?:?]
	at sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:83) ~[?:?]
	at java.security.cert.CertPathValidator.validate(CertPathValidator.java:309) ~[?:?]
	at com.apple.itunes.storekit.verification.ChainVerifier.verifyChain(ChainVerifier.java:82) ~[app-store-server-library-2.0.0.jar!/:?]
	at com.apple.itunes.storekit.verification.SignedDataVerifier.decodeSignedObject(SignedDataVerifier.java:180) ~[app-store-server-library-2.0.0.jar!/:?]
	at com.apple.itunes.storekit.verification.SignedDataVerifier.verifyAndDecodeNotification(SignedDataVerifier.java:107) ~[app-store-server-library-2.0.0.jar!/:?]
	at cn.lollypop.www.lollypopv2mallserver.client.appstorepay.AppStorePayClientV2.verifyAndDecodeNotification(AppStorePayClientV2.java:332) ~[classes!/:1.0-SNAPSHOT]

hakusai22 avatar May 23 '24 08:05 hakusai22

Alas, I cannot guarantee the network-related status. I can only retry the call for this exception.

image

hakusai22 avatar May 23 '24 09:05 hakusai22

@hakusai22 Yes, a retry due to a timeout connecting to the OCSP server is best

alexanderjordanbaker avatar Jun 06 '24 05:06 alexanderjordanbaker