Sometimes it will be a SocketException:
Stack trace: at System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at System.ServiceModel.Channels.SocketConnection.Write(Byte[] buffer, Int32 offset, Int32 size, Boolean immediate, TimeSpan timeout)
And sometimes it is throwing the following CommunicationObjectAbortedException:
Stack trace: at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
The behavior is very random. It is going against static calls that generally work.
The class which implements the interface with the ServiceContract on it is only instantiated once and the methods reused. This causes multithreading exceptions which are not passed back to the client and not logged in the event log.