Hello everybody.
My metabase application is allocated on a server behind proxy.
The problem is that the server is not able to establish websocker connection with slack messeging server.
Logs from the service:
io.netty.channel.ConnectTimeoutException: connection timed out: cerberus-xxxx.lb.slack-msgs.com/35.154.102.71:443
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:267)
at io.netty.util.concurrent.PromiseTask$RunnableAdapter.call(PromiseTask.java:38)
at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:125)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:465)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Unknown Source)
08-13 03:24:45 e[1mERROR metabot.websockete[0m :: Websocker connection error:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(Unknown Source)
at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
at java.base/java.security.cert.CertPathBuilder.build(Unknown Source)
at java.base/sun.security.validator.PKIXValidator.doBuild(Unknown Source)
at java.base/sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
at java.base/sun.security.validator.Validator.validate(Unknown Source)
at java.base/sun.security.ssl.X509TrustManagerImpl.validate(Unknown Source)
at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source)
at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(Unknown Source)
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(Unknown Source)
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(Unknown Source)
at java.base/sun.security.ssl.SSLHandshake.consume(Unknown Source)
at java.base/sun.security.ssl.HandshakeContext.dispatch(Unknown Source)
at java.base/sun.security.ssl.HandshakeContext.dispatch(Unknown Source)
at java.base/sun.security.ssl.TransportContext.dispatch(Unknown Source)
at java.base/sun.security.ssl.SSLTransport.decode(Unknown Source)
at java.base/sun.security.ssl.SSLSocketImpl.decode(Unknown Source)
at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(Unknown Source)
at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:396)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.upgrade(DefaultHttpClientConnectionOperator.java:193)
at org.apache.http.impl.conn.BasicHttpClientConnectionManager.upgrade(BasicHttpClientConnectionManager.java:337)
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:416)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:237)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at clj_http.core$request.invokeStatic(core.clj:626)
at clj_http.core$request.invoke(core.clj:554)
at clj_http.core$request.invokeStatic(core.clj:555)
at clj_http.core$request.invoke(core.clj:554)
at clojure.lang.Var.invoke(Var.java:384)
at clj_http.client$wrap_request_timing$fn__44602.invoke(client.clj:1085)
at clj_http.headers$wrap_header_map$fn__43749.invoke(headers.clj:147)
at clj_http.client$wrap_query_params$fn__44492.invoke(client.clj:819)
at clj_http.client$wrap_basic_auth$fn__44498.invoke(client.clj:842)
at clj_http.client$wrap_oauth$fn__44503.invoke(client.clj:859)
at clj_http.client$wrap_user_info$fn__44512.invoke(client.clj:879)
at clj_http.client$wrap_url$fn__44584.invoke(client.clj:1037)
at clj_http.client$wrap_decompression$fn__44301.invoke(client.clj:420)
at clj_http.client$wrap_input_coercion$fn__44416.invoke(client.clj:639)
at clj_http.client$wrap_additional_header_parsing$fn__44441.invoke(client.clj:694)
at clj_http.client$wrap_output_coercion$fn__44403.invoke(client.clj:583)
at clj_http.client$wrap_exceptions$fn__44253.invoke(client.clj:254)
at clj_http.client$wrap_accept$fn__44456.invoke(client.clj:737)
at clj_http.client$wrap_accept_encoding$fn__44463.invoke(client.clj:759)
at clj_http.client$wrap_content_type$fn__44450.invoke(client.clj:720)
at clj_http.client$wrap_form_params$fn__44549.invoke(client.clj:961)
at clj_http.client$wrap_nested_params$fn__44570.invoke(client.clj:995)
at clj_http.client$wrap_flatten_nested_params$fn__44579.invoke(client.clj:1019)
at clj_http.client$wrap_method$fn__44517.invoke(client.clj:895)
at clj_http.cookies$wrap_cookies$fn__43286.invoke(cookies.clj:131)
at clj_http.links$wrap_links$fn__44081.invoke(links.clj:63)
at clj_http.client$wrap_unknown_host$fn__44587.invoke(client.clj:1048)
at clj_http.client$request_STAR_.invokeStatic(client.clj:1176)
at clj_http.client$request_STAR_.invoke(client.clj:1169)
at clj_http.client$get.invokeStatic(client.clj:1182)
at clj_http.client$get.doInvoke(client.clj:1178)
at clojure.lang.RestFn.invoke(RestFn.java:423)
at metabase.integrations.slack$do_slack_request.invokeStatic(slack.clj:40)
at metabase.integrations.slack$do_slack_request.doInvoke(slack.clj:38)
at clojure.lang.RestFn.invoke(RestFn.java:445)
at clojure.core$partial$fn__5841.invoke(core.clj:2631)
at clojure.core$partial$fn__5839.invoke(core.clj:2623)
at clojure.core$comp$fn__5807.invoke(core.clj:2568)
at metabase.metabot.websocket$connect_websocket_BANG_.invokeStatic(websocket.clj:30)
at metabase.metabot.websocket$connect_websocket_BANG_.invoke(websocket.clj:29)
at metabase.metabot.websocket$reopen_websocket_connection_if_needed_BANG_.invokeStatic(websocket.clj:101)
at metabase.metabot.websocket$reopen_websocket_connection_if_needed_BANG_.invoke(websocket.clj:91)
at metabase.metabot.websocket$start_websocket_monitor_BANG_$fn__56211.invoke(websocket.clj:116)
at clojure.core$binding_conveyor_fn$fn__5754.invoke(core.clj:2030)
at clojure.lang.AFn.call(AFn.java:18)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
I’ve set http proxy server in JVM environmental variable. The connection with https://slack.com is established, but it cannot establish it with cerberus-xxxx.lb.slack-msgs.com via websocket. This conenction is used by MetaBot, so I can not enable it…
Please, who has faced problem like this, give me any feedback…
The more this issue is mentioned on the forums, the more possibly that someone will give a response ))