I once had a cheap Timex watch die from water ingress after running a track workout during a torrential downpour. At the time I joked that it only failed because we ran farther than the 100m rating
If I remember correctly it's up to the client program to set up the session, not something to do with the vendor's implementation. It's conceptually similar to how an HTTPS client performs a TLS handshake after opening a socket before it can work with plain HTTP content.