Verification failed with status INVALID_CHAIN
{"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.
@hakusai22 Could you file a ticket in Feedback Assistant and post the FB number here with one or more of the values you saw?
@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 Sorry, the signed data that gave the error, not the output of the library.
@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 Could you add your app's bundle id to the ticket?
@hakusai22 Could you add your app's bundle id to the ticket?
Sent to FB13807203
@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 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.
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]
Alas, I cannot guarantee the network-related status. I can only retry the call for this exception.
@hakusai22 Yes, a retry due to a timeout connecting to the OCSP server is best