CardDAV contacts do not sync after update to 1.1.7.24 [released]

asked 2015-07-17 16:17:52 +0300

Manatus gravatar image

updated 2015-10-21 13:11:09 +0300

This is a very specific problem with ownCloud carddav sync. It seems that any contact that contains UID in form that has @servername in the end won't sync from server to Jolla phone. All contacts created directly on ownCloud versions earlier than 8.1.0 may have UID in this form (or at least some versions of ownCloud 7.x.x, not sure about 8.0.3 - 8.0.5).

At first I thought it was caused by buggy Contacts application in OC 8.1.0. But since Android based CardDAV works with the same server, and the contacts have been working previously with Jolla too, it is likely to be caused by SailfishOS implementation.

How to reproduce:

Export all contacts from ownCloud. In a resulting vcf file change UID in under one contact so that it does not contain @servername in the end of the line. Delete all contacts on the server (and on the phone). Import vcf file in ownCloud. Activate sync on Jolla.

Result:

Only the contact with UID that does not have @servername is synced and/or become visible in SailfishOS Contacts-app.

When looking at the database of ownCloud, it seems that UID in contact information is used to create vCard uri. With contacts that don't get synced, this uri is in form 3ba1e245-a02d-4a1f-2006-535be06c394e@servername.vcf

I will follow instructions from caldav case and send the logs to Jolla.


Workaround:

If you are still getting this problem with Sailfish 1.1.9.28 and onwards with ownCloud 8.2 or newer, you can fix the contacts manually by first exporting them from your owncloud instance. After this delete all contacts in owncloud instance. In exported VCF file remove all UID endings with @ in them using a text editor, and import the file to the owncloud again. After this the sync should work.


Update 21 Oct 2015: Looks like the fixes in buteo-plugins and introduced in 1.1.9.28 worked after all. After upgrade to ownCloud 8.2 and OC contacts app reinstallation, the contacts with @-character in their UIDs have synced properly. It is very possible that there were bugs in both ends. Closing this question now.

Test method: Tested with new imported contact containing UID with @-char, synced it on phone, and exported it again to see that the @-char has not been removed by original import.

There is a small chance that owncloud app has moved to using something else than UID as a base for vcard URLs. If this is the case, this can be opened again.

edit retag flag offensive reopen delete

The question has been closed for the following reason "released in a software update" by Manatus
close date 2015-10-21 12:53:45.555145

Comments

I got an answer back from Jolla. There is a mismatch in handling @ character and its % encoding in the plugin code.

It will be fixed.

Manatus ( 2015-07-20 15:33:38 +0300 )edit
1

See https://bugs.merproject.org/show_bug.cgi?id=1186 for information and fix. No ETA on when it will be released, we'll try to get it into the next one but we may have missed the deadline.

chris.adams ( 2015-07-22 08:34:29 +0300 )edit
1

The fix has been merged for 1.1.9, thanks for reporting this bug.

blam ( 2015-07-25 03:31:57 +0300 )edit

we syncing against Zentyal server. same issue: caldav-client[12035]: [C] CalDavClient::syncFinished:372 - CalDAV sync failed: 403 "unable to save calendar storage"

pan tau ( 2015-07-28 11:33:47 +0300 )edit

This problem still seems to be in effect in SailfishOS 1.1.9.28. Sync + adding into contacts seems to work ok for the contacts unless they have @-character in the UID.

Plugin-version in 1.1.9.28 early access release is

buteo-sync-plugin-carddav-0.0.17.1-1.11.1.

I'll do testing and logs later.

Manatus ( 2015-09-09 20:25:16 +0300 )edit