<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>Thank you for your time and your answers. I've reset the phone
      and the problem is still here, so I guess I've never succeed in
      remove a contact on the server from my phone. Can't be sure
      because all system files haven't been reset =/<br>
    </p>
    <div class="moz-signature">
      <p><b><span style="font-family:'Arial','sans-serif';
            color:#00A1E6; border:none windowtext 1.0pt; padding:0cm">Vincent
            Lambert</span></b><span
          style="font-family:'Arial','sans-serif'; color:#646464"></span><span
          style="font-size:10.0pt;
          font-family:'Arial','sans-serif';color:#646464; border:none
          windowtext1.0pt; padding:0cm"><br>
          Développeur informatique</span><span
          style="font-family:'Arial','sans-serif';color:#646464"></span></p>
    </div>
    <div class="moz-cite-prefix">Le 14/05/2017 à 21:21, Patrick Ohly a
      écrit :<br>
    </div>
    <blockquote cite="mid:1494789683.1179.236.camel@intel.com"
      type="cite">
      <pre wrap="">On Sun, 2017-05-14 at 21:02 +0200, Vincent Lambert wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">Now, I delete it from the Contacts app and retry:

$ syncevolution --export - @default contacts pas-id-5918A52200000119
BEGIN:VCARD
VERSION:3.0
X-DELETED-AT:2017-05-14T20:47:23
</pre>
      </blockquote>
      <pre wrap="">...
</pre>
      <blockquote type="cite">
        <pre wrap="">N:AAA;AAA;;;
FN:AAA AAA
</pre>
      </blockquote>
      <pre wrap="">...
</pre>
      <blockquote type="cite">
        <pre wrap="">END:VCARD

As you suspected, the delete operation doesn't work properly.
</pre>
      </blockquote>
      <pre wrap="">
I've never seen this X-DELETED-AT before. As you are using an Ubuntu
Phone, with sync and datastore provided by Canonical, I suggest that you
bring this up with them. This looks like an Ubuntu Phone specialty to
me.

</pre>
      <blockquote type="cite">
        <pre wrap="">But there 
is a second problem. Let's try a normal sync, to see what happen next:
</pre>
      </blockquote>
      <pre wrap="">
</pre>
      <blockquote type="cite">
        <pre wrap="">$ syncevolution  owncloud contacts
[WARNING] owncloud: ignoring username , it is not needed
[INFO] @default/9frfrenchholiday: inactive
[INFO] @default/9rd2q8ps5e2r48skvidunfkoms8: inactive
[INFO] @default/addressbook: inactive
[INFO] @default/calendar: inactive
[INFO] @default/memo: inactive
[INFO] @default/todo: inactive
[WARNING] owncloud: ignoring username , it is not needed
[INFO @owncloud] target side of local sync ready
[INFO @owncloud] @owncloud/addressbook: inactive
[INFO @owncloud] @owncloud/calendar: inactive
[INFO @owncloud] @owncloud/memo: inactive
[INFO @owncloud] @owncloud/todo: inactive
[INFO @owncloud] @owncloud/contacts: using configured 
database=[censored]/remote.php/carddav/addressbooks/Vincent/contacts
[INFO @owncloud] @owncloud/contacts: starting normal sync, two-way (peer 
is server)
[INFO] @default/contacts: starting normal sync, two-way (peer is client)
[INFO] creating complete data backup of datastore contacts before sync 
(enabled with dumpData and needed for printChanges)
@default data changes to be applied during synchronization:
*** @default/contacts ***
Comparison was impossible.

[INFO] @default/contacts: started
[INFO] @default/contacts: sent 1
[INFO @owncloud] @owncloud/contacts: started
[INFO @owncloud] @owncloud/contacts: updating "AAA AAA"
[INFO @owncloud] @owncloud/contacts: received 1/1
[INFO] @default/contacts: normal sync done successfully
[INFO @owncloud] @owncloud/contacts: normal sync done successfully

Synchronization successful.

Changes applied during synchronization (@owncloud):
+---------------|-----------------------|-----------------------|-CON-+
|               |       @owncloud       |       @default        | FLI |
|        Source | NEW | MOD | DEL | ERR | NEW | MOD | DEL | ERR | CTS |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
|      contacts |  0  |  1  |  0  |  0  |  0  |  0  |  0  |  0  | 0  |
|      two-way, 0 KB sent by client, 0 KB received                    |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
|          start Sun May 14 20:49:51 2017, duration 0:10min           |
|               synchronization completed successfully                |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
[INFO] creating complete data backup after sync (enabled with dumpData 
and needed for printChanges)

Synchronization successful.

Changes applied during synchronization:
+---------------|-----------------------|-----------------------|-CON-+
|               |       @default        |       @owncloud       | FLI |
|        Source | NEW | MOD | DEL | ERR | NEW | MOD | DEL | ERR | CTS |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
|      contacts |  0  |  0  |  0  |  0  |  0  |  1  |  0  |  0  | 0  |
|      two-way, 0 KB sent by client, 0 KB received                    |
|      item(s) in database backup: 141 before sync, 141 after it      |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
|          start Sun May 14 20:49:50 2017, duration 0:11min           |
|               synchronization completed successfully                |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+

Data modified @default during synchronization:
*** @default/contacts ***
Comparison was impossible.





Whatever the problem is, the contact has been updated on the server but 
no information has changed.
</pre>
      </blockquote>
      <pre wrap="">
I'm not following. What problem?

If this is the first two-way sync after "deleting" the contact via the
phone UI, then the sync above makes perfect sense. The contact has been
modified (by adding the X-DELETED-AT) and that's why it gets sent to the
server, including that extension. But as it is non-standard, the server
doesn't do anything with it.


</pre>
      <blockquote type="cite">
        <pre wrap=""> I can see it in another client 
(Thunderbird). Finally, I try again a refresh-from-remote, that is 
supposed to completely reset the local problem on the phone, and surprise:

$ syncevolution --sync refresh-from-remote owncloud contacts
[WARNING] owncloud: ignoring username , it is not needed
[INFO] @default/9frfrenchholiday: inactive
[INFO] @default/9rd2q8ps5e2r48skvidunfkoms8: inactive
[INFO] @default/addressbook: inactive
[INFO] @default/calendar: inactive
[INFO] @default/memo: inactive
[INFO] @default/todo: inactive
[WARNING] owncloud: ignoring username , it is not needed
[INFO @owncloud] target side of local sync ready
[INFO @owncloud] @owncloud/addressbook: inactive
[INFO @owncloud] @owncloud/calendar: inactive
[INFO @owncloud] @owncloud/memo: inactive
[INFO @owncloud] @owncloud/todo: inactive
[INFO @owncloud] @owncloud/contacts: using configured 
database=[censored]/remote.php/carddav/addressbooks/Vincent/contacts
[INFO @owncloud] @owncloud/contacts: starting first time sync from 
client (peer is server)
[INFO @owncloud] @owncloud/contacts: sent 141/141
[INFO] @default/contacts: starting slow sync from client (peer is client)
[INFO] creating complete data backup of datastore contacts before sync 
(enabled with dumpData and needed for printChanges)
@default data changes to be applied during synchronization:
*** @default/contacts ***
Comparison was impossible.

[INFO] @default/contacts: deleting "AAA AAA"
[...]
[INFO] @default/contacts: adding "AAA AAA"
[...]
[INFO] @default/contacts: received 141
[INFO @owncloud] @owncloud/contacts: started
[INFO] @default/contacts: slow sync done successfully
[INFO @owncloud] @owncloud/contacts: first time sync done successfully

Synchronization successful.

Changes applied during synchronization (@owncloud):
+---------------|-----------------------|-----------------------|-CON-+
|               |       @owncloud       |       @default        | FLI |
|        Source | NEW | MOD | DEL | ERR | NEW | MOD | DEL | ERR | CTS |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
|      contacts |  0  |  0  |  0  |  0  | 141 |  0  |  0  |  0  | 0  |
|      refresh-from-local, 44 KB sent by client, 0 KB received        |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
|          start Sun May 14 20:51:55 2017, duration 0:28min           |
|               synchronization completed successfully                |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
[INFO] creating complete data backup after sync (enabled with dumpData 
and needed for printChanges)

Synchronization successful.

Changes applied during synchronization:
+---------------|-----------------------|-----------------------|-CON-+
|               |       @default        |       @owncloud       | FLI |
|        Source | NEW | MOD | DEL | ERR | NEW | MOD | DEL | ERR | CTS |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
|      contacts | 141 |  0  | 141 |  0  |  0  |  0  |  0  |  0  | 0  |
|      refresh-from-remote, 0 KB sent by client, 44 KB received       |
|      item(s) in database backup: 141 before sync, 141 after it      |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
|          start Sun May 14 20:51:54 2017, duration 0:30min           |
|               synchronization completed successfully                |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+

Data modified @default during synchronization:
*** @default/contacts ***
Comparison was impossible.




The AAA contact can't be seen in the Contact app at this time! Even if 
you previous command reveal it in the database:
$ syncevolution --print-items owncloud contacts
pas-id-5918A76400000233: AAA AAA
[...]
</pre>
      </blockquote>
      <pre wrap="">
So presumably the X-DELETED-AT was preserved on the server (you can
check by dumping it again). The server still shows the contact (because
it doesn't know what that property means), but the phone hides it
(because it knows the property).

</pre>
    </blockquote>
    <br>
  </body>
</html>