[Nextcloud]: Contacts sync unreliable

REPRODUCIBILITY: 100%
BUILD ID: 3.3.0.16
HARDWARE: Xperia X
UI LANGUAGE: German
REGRESSION: unknown

DESCRIPTION:

My contacts are not synced properly using the Nextcloud integration.
After upgrading to 3.3.0 I deactivated my existing CardDAV account and enabled contacts in the Nextcloud one. Everything seemed fine, new contacts were uploaded to as well as downloaded from the server.
Now a few days ago I deleted the old CardDAV accout in order to use the NC integration only.
After this, roughly half of my contacts disappeared and the most of the remainder got unlinked, meaning only a name remained, without any further details such as number, mail or birthday.
I could not get the sync to work again. I recreated the NC account twice with contacts enabled and rebooted the device. Only when I set up once again a CardDAV account, my contacts reappeared. I had to manually relink ‘name only’ contacts on the phone with their equivalent from the CardDAV account.

On a side note:
I presume that the remaining contacts somehow are stored locally on the phone and in the cloud. I never understood how linking contacts is working in the first place. It is very hard to get how contacts from the cloud are stored and why they are treated differently from those on the phone.

PRECONDITIONS:

Nextcloud intstance, active CardDAV account plus NC integration setup.

STEPS TO REPRODUCE:

  1. Disable CardDAV account
  2. Set up Nextcloud integration
  3. Remove CardDAV account

EXPECTED RESULT:

Contacts should be synced from same server via Nextcloud account

ACTUAL RESULT:

A few contacts remain, most disappear and the rest gets unlinked. Existing contacts are not fetched from server anymore

2 Likes

I think I started a discussion on TJC (or chimed into an existing one) asking myself similar questions.
And here is what I got at that same time (not too long ago :wink: ):
adding contacts directly on phone and getting synced from server is a different beast
contacts added on phone gets uploaded to server and e.g. are available there for syncing with other devices
contacts added from server to phone during sync are ‘volatile’, means get deleted on deleting the sync account and are NOT synced back up to any other configured account (which is correct imho).

To get a consistent overall state you would need to set up all sync accounts, download all contacts to phone, do an export to vcf, disable (delete?) all accounts, import back the vcf. This way you would have all contacts as local contacts. And all would be uploaded to all accounts.

Contacts added later on server side would again be ‘property’ of that server account only.

remark:
to be eaten with a lot of salt…

1 Like

Maybe would make sense if we talked about two different servers with a different (or at least not identical) set of contacts here. But it’s the same server. Everything you describe seems to involve multiple sources (read CardDAV servers) for contacts.

Having to export and import contacts the way you describe would qualify as a major usability issue for me, so also a bug.

It should be possible to reuse the same server using the new Nectloud integration and have the same sync behavior as before with the CardDAV setup.