Problem with Telegram binding

After upgrading to OH 2.5.7 - running OpenHabian on Debian Linux - my Telegram action binding stopped working and throws an error at each sendTelegram:

2020-07-26 15:14:46.280 [WARN ] [ab.action.telegram.internal.Telegram] - Transport error: {}

java.net.NoRouteToHostException: No route to host (Host unreachable)

at java.net.PlainSocketImpl.socketConnect(Native Method) ~[?:1.8.0_262]

at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[?:1.8.0_262]

at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[?:1.8.0_262]

at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[?:1.8.0_262]

at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:1.8.0_262]

at java.net.Socket.connect(Socket.java:607) ~[?:1.8.0_262]

at java.net.Socket.connect(Socket.java:556) ~[?:1.8.0_262]

at java.net.Socket.(Socket.java:452) ~[?:1.8.0_262]

at java.net.Socket.(Socket.java:304) ~[?:1.8.0_262]

at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:80) ~[?:?]

at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:122) ~[?:?]

at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707) ~[?:?]

at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387) ~[?:?]

at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171) ~[?:?]

at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397) ~[?:?]

at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323) ~[?:?]

at org.openhab.action.telegram.internal.Telegram.sendTelegramPhoto(Telegram.java:228) ~[?:?]

at org.openhab.action.telegram.internal.Telegram.sendTelegramPhoto(Telegram.java:188) ~[?:?]

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_262]

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_262]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_262]

at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_262]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1175) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1150) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1136) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:1081) ~[?:?]

at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:151) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:991) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:954) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:235) ~[?:?]

at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:458) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:239) ~[?:?]

at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:201) ~[?:?]

at org.eclipse.smarthome.model.script.runtime.internal.engine.ScriptImpl.execute(ScriptImpl.java:81) ~[?:?]

at org.eclipse.smarthome.model.rule.runtime.internal.engine.RuleEngineImpl.lambda$2(RuleEngineImpl.java:313) ~[?:?]

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_262]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_262]

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_262]

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:1.8.0_262]

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_262]

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_262]

at java.lang.Thread.run(Thread.java:748) [?:1.8.0_262]

2020-07-26 15:14:46.753 [WARN ] [ab.action.telegram.internal.Telegram] - Transport error: {}

javax.net.ssl.SSLHandshakeException: No trusted certificate found

at sun.security.ssl.Alert.createSSLException(Alert.java:131) ~[?:1.8.0_262]

at sun.security.ssl.TransportContext.fatal(TransportContext.java:324) ~[?:1.8.0_262]

at sun.security.ssl.TransportContext.fatal(TransportContext.java:267) ~[?:1.8.0_262]

at sun.security.ssl.TransportContext.fatal(TransportContext.java:262) ~[?:1.8.0_262]

at sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:645) ~[?:1.8.0_262]

at sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:464) ~[?:1.8.0_262]

at sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:360) ~[?:1.8.0_262]

at sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:377) ~[?:1.8.0_262]

at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:444) ~[?:1.8.0_262]

at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:422) ~[?:1.8.0_262]

at sun.security.ssl.TransportContext.dispatch(TransportContext.java:182) ~[?:1.8.0_262]

at sun.security.ssl.SSLTransport.decode(SSLTransport.java:156) ~[?:1.8.0_262]

at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1197) ~[?:1.8.0_262]

at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1106) ~[?:1.8.0_262]

at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:398) ~[?:1.8.0_262]

at sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:726) ~[?:1.8.0_262]

at sun.security.ssl.SSLSocketImpl.access$200(SSLSocketImpl.java:72) ~[?:1.8.0_262]

at sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSocketImpl.java:1011) ~[?:1.8.0_262]

at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) ~[?:1.8.0_262]

at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) ~[?:1.8.0_262]

at org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:506) ~[?:?]

at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2114) ~[?:?]

at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1096) ~[?:?]

at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398) ~[?:?]

at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171) ~[?:?]

at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397) ~[?:?]

at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323) ~[?:?]

at org.openhab.action.telegram.internal.Telegram.sendTelegram(Telegram.java:111) ~[?:?]

at org.openhab.action.telegram.internal.Telegram.sendTelegram(Telegram.java:166) ~[?:?]

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_262]

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_262]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_262]

at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_262]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1175) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1150) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1136) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:1081) ~[?:?]

at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:151) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:991) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:954) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:235) ~[?:?]

at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:458) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:239) ~[?:?]

at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:201) ~[?:?]

at org.eclipse.smarthome.model.script.runtime.internal.engine.ScriptImpl.execute(ScriptImpl.java:81) ~[?:?]

at org.eclipse.smarthome.model.rule.runtime.internal.engine.RuleEngineImpl.lambda$2(RuleEngineImpl.java:313) ~[?:?]

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_262]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_262]

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_262]

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:1.8.0_262]

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_262]

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_262]

at java.lang.Thread.run(Thread.java:748) [?:1.8.0_262]

Caused by: sun.security.validator.ValidatorException: No trusted certificate found

at sun.security.validator.SimpleValidator.buildTrustedChain(SimpleValidator.java:398) ~[?:1.8.0_262]

at sun.security.validator.SimpleValidator.engineValidate(SimpleValidator.java:135) ~[?:1.8.0_262]

at sun.security.validator.Validator.validate(Validator.java:271) ~[?:1.8.0_262]

at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:315) ~[?:1.8.0_262]

at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:223) ~[?:1.8.0_262]

at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:129) ~[?:1.8.0_262]

at sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:629) ~[?:1.8.0_262]

… 52 more

The “no route to host” in the beginning indicates a network issue - but that is definately not the case here. However, at the bottom of the errors thrown, there is also a certificate issue indicated from/by JAVA.

Any ideas how to fix this ?

Are you using java 11 or java 8?

The error came with Java 8. I then upgraded to 11 and get the same error:

:~$ java -version
openjdk version “11.0.8” 2020-07-14 LTS
OpenJDK Runtime Environment Zulu11.41+23-CA (build 11.0.8+10-LTS)
OpenJDK Server VM Zulu11.41+23-CA (build 11.0.8+10-LTS, mixed mode)

Is this only related to actions? Other fucntionality of the binding is still available?

I am unsure, as i am only using the binding to send telegram messages to myself…

Did you configure the telegram binding to use a proxy ? In case you did is the proxy up and running ?

No I haven’t configured the binding to use a proxy. I also noticed that my TR064 Fritzbox binding started throwing java-errors.

I now reverted to my old setup using OpenHab 2.5.6 on OpenHabian with Java 8.
All other settings for bindings etc. are the same.

java -version
openjdk version “1.8.0_252”
OpenJDK Runtime Environment (Zulu 8.46.0.19-CA-linux32) (build 1.8.0_252-b14)
OpenJDK Server VM (Zulu 8.46.0.19-CA-linux32) (build 25.252-b14, mixed mode)

Now I get my sendTelegram messages (and the TR064 Fritzbox binding doesnt throw errors anymore) - however for Telegram, there is still a java-warning thrown when I trigger a sendTelegram:

2020-07-27 10:09:08.708 [WARN ] [ab.action.telegram.internal.Telegram] - Transport error: {}

java.net.NoRouteToHostException: No route to host (Host unreachable)

at java.net.PlainSocketImpl.socketConnect(Native Method) ~[?:1.8.0_252]

at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[?:1.8.0_252]

at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[?:1.8.0_252]

at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[?:1.8.0_252]

at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:1.8.0_252]

at java.net.Socket.connect(Socket.java:607) ~[?:1.8.0_252]

at java.net.Socket.connect(Socket.java:556) ~[?:1.8.0_252]

at java.net.Socket.(Socket.java:452) ~[?:1.8.0_252]

at java.net.Socket.(Socket.java:304) ~[?:1.8.0_252]

at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:80) ~[?:?]

at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:122) ~[?:?]

at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707) ~[?:?]

at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387) ~[?:?]

at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171) ~[?:?]

at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397) ~[?:?]

at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323) ~[?:?]

at org.openhab.action.telegram.internal.Telegram.sendTelegramPhoto(Telegram.java:228) ~[?:?]

at org.openhab.action.telegram.internal.Telegram.sendTelegramPhoto(Telegram.java:188) ~[?:?]

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_252]

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_252]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_252]

at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_252]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1175) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1150) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1136) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:1081) ~[?:?]

at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:151) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:991) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:954) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:235) ~[?:?]

at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:458) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:239) ~[?:?]

at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?]

at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:201) ~[?:?]

at org.eclipse.smarthome.model.script.runtime.internal.engine.ScriptImpl.execute(ScriptImpl.java:81) ~[?:?]

at org.eclipse.smarthome.model.rule.runtime.internal.engine.RuleEngineImpl.lambda$2(RuleEngineImpl.java:313) ~[?:?]

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_252]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_252]

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_252]

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:1.8.0_252]

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_252]

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_252]

at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252]

I can live with this - but still find it strange, and will eventually like to upgrade to OH 2.5.7.
Any ideas what these “transport” / “route to host” issues with Java could be ?