anchor.diff:              ok
       end,
   
  -    case enif_protobuf:encode(ClientMessage) of
  +    % TODO VFS-5405 - return to using enif_protobuf when tid_not_found error is fixed
  +%%    case enif_protobuf:encode(ClientMessage) of
  +    case messages:encode_msg(ClientMessage) of
           {error, Reason} ->
               throw({serialization_failed, Reason});
           EncodedClientMessage ->
  
positive.code:         message_body = {_, MsgBody},
          proxy_session_id = EffSessionId,
          proxy_session_macaroon = PToken
      } = enif_protobuf:decode(Message, 'ClientMessage'),
  
      {ok, DecodedId} = clproto_message_id:decode(MsgId),
  
  
negative.code:         message_stream = MsgStm,
          message_body = {_, MsgBody},
          proxy_session_id = EffSessionId
      } = messages:decode_msg(Message, 'ServerMessage'),
      % TODO VFS-5405 - return to using enif_protobuf when tid_not_found error is fixed
  %%    } = enif_protobuf:decode(Message, 'ServerMessage'),
  
      {ok, DecodedId} = clproto_message_id:decode(MsgId),
      {ok, #server_message{
  