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 =/

Vincent Lambert
Développeur informatique

Le 14/05/2017 à 21:21, Patrick Ohly a écrit :
On Sun, 2017-05-14 at 21:02 +0200, Vincent Lambert wrote:
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
...
N:AAA;AAA;;;
FN:AAA AAA
...
END:VCARD

As you suspected, the delete operation doesn't work properly.
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.

But there 
is a second problem. Let's try a normal sync, to see what happen next:

      
$ 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.
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.


 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
[...]
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).