title: Disassociated exception in Akka.Remoting
body: <p>Using Akka.net I am trying to implement simple scenario. 
  I have created 2 servers and 1 client, where Servers receives the messages sent from client and processes it.</p>
  
  <p>Setup works fine sometimes and sometimes it gives following error, I am not able to figure out the cause:</p>
  
  <p>**</p>
  
  <pre><code>No response from remote. Handshake timed out or transport failure detector triggered.
  Cause: Unknown
  Association with remote system akka.tcp://RemoteFSharp@172.27.**.94:8777 has
  failed; address is now gated for 5000 ms. Reason is: [Akka.Remote.EndpointDisass
  ociatedException: Disassociated
     at Akka.Remote.EndpointWriter.PublishAndThrow(Exception reason, LogLevel leve
  l)
     at Akka.Remote.EndpointWriter.Unhandled(Object message)
     at Akka.Actor.ActorCell.&lt;&gt;c__DisplayClass109_0.&lt;Akka.Actor.IUntypedActorConte
  xt.Become&gt;b__0(Object m)
     at Akka.Actor.ActorBase.AroundReceive(Receive receive, Object message)
     at Akka.Actor.ActorCell.ReceiveMessage(Object message)
     at Akka.Actor.ActorCell.AutoReceiveMessage(Envelope envelope)
     at Akka.Actor.ActorCell.Invoke(Envelope envelope)
  --- End of stack trace from previous location where exception was thrown ---
     at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
     at Akka.Actor.ActorCell.HandleFailed(Failed f)
     at Akka.Actor.ActorCell.SystemInvoke(Envelope envelope)]
  </code></pre>
  
  <p>**</p>
  
  <p>Client Config:</p>
  
  <pre><code>akka {
         log-dead-letters-during-shutdown = off
  
          actor {
          handshake-timeout = 600 s
  
          serializers {
              wire = "Akka.Serialization.WireSerializer, Akka.Serialization.Wire"
            }
          serialization-bindings {
            "System.Object" = wire
          }
            provider = "Akka.Remote.RemoteActorRefProvider, Akka.Remote"
          }
          remote {
              helios.tcp {
                  maximum-frame-size = 20000000b
                  tcp-keepalive = on
                  transport-class =
            "Akka.Remote.Transport.Helios.HeliosTcpTransport, Akka.Remote"
                  transport-protocol = tcp
                  port = 8760
                  hostname = 172.27.**.94
                  }
            }
          log-remote-lifecycle-events = INFO
        }
  </code></pre>
  
  <p>Server Config :</p>
  
  <pre><code>      akka {
          log-dead-letters-during-shutdown = off
          actor {
  
          handshake-timeout = 600 s
          serializers {
              wire = "Akka.Serialization.WireSerializer, Akka.Serialization.Wire"
            }
          serialization-bindings {
            "System.Object" = wire
          }
            provider = "Akka.Remote.RemoteActorRefProvider, Akka.Remote"
          }
          remote {
          helios.tcp {
                maximum-frame-size = 20000000b
                tcp-keepalive = on
                transport-class =
          "Akka.Remote.Transport.Helios.HeliosTcpTransport, Akka.Remote"
                transport-protocol = tcp
                port = 8777
                hostname = 172.27.**.94
            }
            }
          log-remote-lifecycle-events = INFO
        }
  </code></pre>
  
  <p>Also I am using Newtonsoft.Json for serialization as follows:</p>
  
  <pre><code>let CreateEmployeeActor (system: ActorSystem) actorName  =
      (spawn system actorName
          (fun mailbox -&gt;
              let rec loop (count: int)= 
                  actor {
                      let! message = mailbox.Receive()
                      let sender = mailbox.Sender()
                      let deserializedEmailData = JsonConvert.DeserializeObject&lt;EmployeeActorMsgs&gt; (message)
                      match deserializedEmailData with
                      | InItEmployee -&gt;
                  //Some Logic
  
                  }
              loop (0)
              ))
  </code></pre>