I believe this indicates a TCP reset or fin when trying to use a socket that the client thought was established. Unfortunately, there wouldn’t be much information on the cause from the client. Perhaps you can correlate that to any logs on the cluster side?
One thought that does occur is that there was a change in how long idle connections are kept open as part of the “slowloris” attack, but a quick search shows that was quite a while ago. We did change SDK defaults afterward, but everything you’re describing is pretty current. Did you by chance upgrade the cluster from something early 6.0 or 5.5 recently? Or do you have any tunables applied for idle time? See the docs for the details on that change.
If you’re on the latest SDKs, it should be handled for you. Otherwise, it’s just tuning the “idle timeout” for some connections. See the release notes for the particular Major.Minor of the SDK you’re on and you should be able to find it.