Problem with sync of contacts due to vcard version

Nextcloud Version: 17.0.2
Contacts App Version: 3.1.6
Platform: Android
Sync Client: DavX5; 2.6.3-ose

I have never had any issue with basic sync functionality, but I discovered the rather new app “Nextcloud Maps” and started adding profile pics and home addresses to my contacts. Unfortunately, I just realized there is some stuff missing in my nextcloud instance.

I looked into the problem and it seems that DavX5 is using the vcard v3 and the nextcloud contacts app is using v4. This isn’t an issue for phone number, name, birthday, but it is for the profile pic and the address. The exact issue is that on SOME contacts the profile pic won’t upload.

Any suggestions on how I could fix this problem? Maybe another sync client for my phone? Or does the nexcloud app allow specifying the version?

Resources:
DavX5 uses vcard v3: https://gitlab.com/search?utf8=✓&snippets=&scope=&repository_ref=master-ose&search=vcard++version&project_id=447145
Nextcloud app docs suggest using DavX5 and nothing else: https://docs.nextcloud.com/server/14/user_manual/pim/sync_android.html

Afaik, Android itself uses VCARD 2.1, where Nextcloud uses VCARD 3.0 by default. DAVx5 is able to map all fields correctly. Nevertheless an issue exists in the current Contacts app, which leads to a wrong photo value in a record. This problem will most likely be fixed with the next app version:

As a workaround I’ve added e.g. my photos using the Thunderbird/Cardbook add-in. This makes sure that the tag is correctly set.

Thanks! looking forward to the next version then.

Ok so I updated to the new version and still, some photos are not uploaded to the server. Any other ideas?

I have looked into this issue in more detail and I must say what I discovered is distrubing.

Some photos do not upload from my phone to my nextcloud instance, but when I delete my contacts from my phone and resync them from my nextcloud to my phone again, the photos are still there. Further, on some contacts the photo on nextcloud is bigger in (file)size than it is on my phone (the base64 string is much longer)

On some contacts a different home address is displayed than on the phone. In detail it looks like this in the vcard from NEXTCLOUD:

ADR;TYPE=home;LABEL=addr from phone:;;addr from nextcloud;
;;;

the export from my PHONE shows it like this:

ADR;TYPE=HOME:;;addr from phone;;;;

these are just examples, many other values seem really inconsistent. My conclusion is that the export features on both devices (nextcloud web interface and my phone) is not exporting everything it has. Further everything is inconsistent. Maybe because Nextcloud uses vcard v4 and davdroid uses v3?

I haven’t submitted issues on the respective git repos as I don’t really know if there even is one or if davdroid and the nextcloud contacts app are just incompatible.