I have also had the problem that every few days all HomeKit devices show ‘no response’.
In my OH logs I found the following exception:
22:48:50.966 [WARN ] [javax.jmdns.impl.tasks.Responder ] - Responder(*snip*)run() exception
java.io.IOException: Operation not permitted
at java.net.PlainDatagramSocketImpl.send(Native Method) ~[?:?]
at java.net.DatagramSocket.send(DatagramSocket.java:695) ~[?:?]
at javax.jmdns.impl.JmDNSImpl.send(JmDNSImpl.java:1665) ~[bundleFile:3.5.7]
at javax.jmdns.impl.tasks.Responder.run(Responder.java:154) [bundleFile:3.5.7]
at java.util.TimerThread.mainLoop(Timer.java:556) [?:?]
at java.util.TimerThread.run(Timer.java:506) [?:?]
After looking into the code of jmDNS I changed the following line and I have no issues since then.
A pre-built JAR file with the fix can be downloaded here: Dropbox - jmdns-3.5.7.jar - Simplify your life
Replace it with the original jmdns-3.5.7.jar. If you’re using docker, mount the JAR under /openhab/runtime/system/org/jmdns/jmdns/3.5.7/jmdns-3.5.7.jar
I suspect the exception is triggered by a mDNS message sent by one of my other devices on the network. After the exception occurs the OH jmdns client is stopped.
If other people can confirm this solves their ‘no reponse’ problem as well, I will create a pull request to jmdns.