anchor.diff:              activate_socket(State2, false),
               {noreply, State2, ?PROTO_CONNECTION_TIMEOUT};
           {error, _Reason} ->
  -            {stop, handshake_failed, State}
  +            % Concrete errors were already logged in 'handle_handshake' so
  +            % terminate gracefully as to not spam more error logs
  +            {stop, normal, State}
       catch Type:Reason ->
           ?error_stacktrace("Unexpected error while performing handshake: ~p:~p", [
               Type, Reason
           ]),
  -        {stop, handshake_failed, State}
  +        {stop, normal, State}
       end;
   
   handle_info({Ok, Socket, Data}, #state{status = ready, socket = Socket, ok = Ok} = State) ->
  
positive.code:         {ok, NewState} ->
              activate_socket(NewState, false),
              {noreply, NewState, ?PROTO_CONNECTION_TIMEOUT};
          {error, Reason} ->
              {stop, Reason, State}
      end;
  
  handle_info({Error, Socket, Reason}, State = #state{error = Error}) ->
  
negative.code:             activate_socket(State2, false),
              {noreply, State2, ?PROTO_CONNECTION_TIMEOUT};
          {error, _Reason} ->
              % Concrete errors were already logged in 'handle_protocol_upgrade_response'
              % so terminate gracefully as to not spam more error logs
              {stop, normal, State}
      catch Type:Reason ->
          ?error_stacktrace("Unexpected error during protocol upgrade: ~p:~p", [
              Type, Reason
          ]),
          {stop, normal, State}
      end;
  
  handle_info({Ok, Socket, Data}, #state{status = performing_handshake, socket = Socket, ok = Ok} = State) ->
  