I got the following error this evening, and something similar happened when I tried to relaunch this client (I didn't cut-n-paste the second error message, but it happened while still checking files). The official client is working.
java.lang.RuntimeException: Delayed error in resource gfx/terobjs/bumlings/apatite0 (v2), from forking source backed by HTTP res source (
https://www.havenandhearth.com/res/)
at haven.Resource$Pool$Queued.get(Resource.java:456)
at haven.Resource$Pool$Queued.get(Resource.java:424)
at haven.Session$CachedRes$Ref.get(Session.java:140)
at haven.Session$CachedRes$Ref.get(Session.java:133)
at haven.ResDrawable.<init>(ResDrawable.java:45)
at haven.OCache.cres(OCache.java:258)
at haven.OCache.lambda$cres$10(OCache.java:270)
at haven.OCache$GobInfo.apply(OCache.java:759)
at haven.Loader.lambda$defer$0(Loader.java:235)
at haven.Loader$Future.run(Loader.java:71)
at haven.Loader$Future.access$400(Loader.java:42)
at haven.Loader.loop(Loader.java:197)
at java.lang.Thread.run(Thread.java:748)
Caused by: haven.Resource$LoadException: Load error in resource gfx/terobjs/bumlings/apatite0(v2), from forking source backed by HTTP res source (
https://www.havenandhearth.com/res/)
at haven.Resource$Pool.handle(Resource.java:517)
at haven.Resource$Pool.access$1200(Resource.java:401)
at haven.Resource$Pool$Loader.run(Resource.java:653)
... 1 more
Suppressed: haven.Resource$LoadException: Load error in resource gfx/terobjs/bumlings/apatite0(v2), from cache source backed by HashDirCache(
http://game.havenandhearth.com/render/)
... 4 more
Suppressed: haven.Resource$LoadException: Load error in resource gfx/terobjs/bumlings/apatite0(v2), from local res source (res-preload)
... 4 more
Suppressed: haven.Resource$LoadException: Load error in resource gfx/terobjs/bumlings/apatite0(v2), from 'custom' jar source
... 4 more
Suppressed: haven.Resource$LoadException: Load error in resource gfx/terobjs/bumlings/apatite0(v2), from local res source (res)
... 4 more
Suppressed: haven.Resource$LoadException: Load error in resource gfx/terobjs/bumlings/apatite0(v2), from filesystem res source (/private/var/folders/zk/926c34c13hg6y_y5gyvp7hy40000gn/T/hsperfdata_arlie/res)
... 4 more
Caused by: java.io.FileNotFoundException: gfx/terobjs/bumlings/apatite0
at haven.Resource$FileSource.get(Resource.java:269)
at haven.Resource$Pool.handle(Resource.java:501)
... 3 more
Caused by: java.nio.file.NoSuchFileException: /private/var/folders/zk/926c34c13hg6y_y5gyvp7hy40000gn/T/hsperfdata_arlie/res/gfx/terobjs/bumlings/apatite0.res
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
at java.nio.file.Files.newByteChannel(Files.java:361)
at java.nio.file.Files.newByteChannel(Files.java:407)
at java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:384)
at java.nio.file.Files.newInputStream(Files.java:152)
at haven.Resource$FileSource.get(Resource.java:267)
... 4 more
Caused by: java.io.FileNotFoundException: Could not find resource locally: /res/gfx/terobjs/bumlings/apatite0.res
at haven.Resource$JarSource.get(Resource.java:289)
at haven.Resource$Pool.handle(Resource.java:501)
... 3 more
Caused by: java.io.FileNotFoundException: Could not find resource locally: /customized-remote/gfx/terobjs/bumlings/apatite0.res
at haven.Resource$JarSource.get(Resource.java:289)
at haven.Resource$CustomizedJarSource.get(Resource.java:307)
at haven.Resource$Pool.handle(Resource.java:501)
... 3 more
Caused by: java.io.FileNotFoundException: Could not find resource locally: /res-preload/gfx/terobjs/bumlings/apatite0.res
at haven.Resource$JarSource.get(Resource.java:289)
at haven.Resource$Pool.handle(Resource.java:501)
... 3 more
Caused by: java.io.FileNotFoundException: res/gfx/terobjs/bumlings/apatite0
at haven.HashDirCache.fetch(HashDirCache.java:389)
at haven.Resource$CacheSource.get(Resource.java:232)
at haven.Resource$Pool.handle(Resource.java:501)
... 3 more
Caused by: haven.StreamMessage$IOError: java.io.IOException: already retried 7 times
at haven.StreamMessage.underflow(StreamMessage.java:71)
at haven.Message.rensure(Message.java:98)
at haven.Message.bytes(Message.java:171)
at haven.Resource.load(Resource.java:1626)
at haven.Resource.access$700(Resource.java:41)
at haven.Resource$Pool.handle(Resource.java:505)
... 3 more
Caused by: java.io.IOException: already retried 7 times
at haven.RetryingInputStream.retry(RetryingInputStream.java:54)
at haven.RetryingInputStream.get(RetryingInputStream.java:70)
at haven.RetryingInputStream.read(RetryingInputStream.java:111)
at haven.StreamTee.read(StreamTee.java:87)
at haven.StreamMessage.underflow(StreamMessage.java:68)
... 8 more
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.ssl.Alert.createSSLException(Alert.java:131)
at sun.security.ssl.TransportContext.fatal(TransportContext.java:370)
at sun.security.ssl.TransportContext.fatal(TransportContext.java:313)
at sun.security.ssl.TransportContext.fatal(TransportContext.java:308)
at sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:652)
at sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:471)
at sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:367)
at sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:376)
at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:479)
at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:457)
at sun.security.ssl.TransportContext.dispatch(TransportContext.java:200)
at sun.security.ssl.SSLTransport.decode(SSLTransport.java:154)
at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1290)
at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1199)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:401)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:373)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:587)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:197)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1584)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1512)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:268)
at haven.Resource$HttpSource$1.create(Resource.java:363)
at haven.RetryingInputStream.create(RetryingInputStream.java:44)
at haven.RetryingInputStream.get(RetryingInputStream.java:76)
... 11 more
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 sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:439)
at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:306)
at sun.security.validator.Validator.validate(Validator.java:271)
at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:312)
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:221)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:128)
at sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:636)
... 30 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:434)
... 36 more
I'm on MacOS 12.0.1 which may be relevant. They have issues of their own with certificates.