We have moved to a new Sailfish OS Forum. Please start new discussions there.

Caldav syncs only one way (from phone to server)

Tracked by Jolla (In release)

asked 2020-01-12 15:06:19 +0300

mrtrm gravatar image

I'm on a Sony Xperia Xa2 - SFOS The caldav sync with my radicale server always worked well, syncing contacts & calendar both ways. But since a while (I think after the update from to but I'm not sure) I notice that only events entered in the SFOS device get synced to radicale but the ones entered in radicale (through thunderbird) don't get to my phone anymore. For me a dangerous situation if I cannot rely on my calendar!!! Has anyone noticed similar behaviour?

I haven't checked the contacts sync, which is a little less important to me, but I might do so later on if it helps solving the problem ...

edit retag flag offensive close delete


I can not confirm. My Xa2 ( Dual SIM, Ubuntu Mate 19.04) synchronizes calendar and contacts with radicale (2.1.11) in both directions. Can that be a radicale or thunderbird problem? I work with evolution. Check the settings for the account (two-way / to device). Have you ever deleted the account and set it up again?

4carlos ( 2020-01-13 06:48:31 +0300 )edit

I have the same problem. The bug appeared with Sailfish OS 3.2.1.x for me, too. I am using Sailfish OS on a Sony Xperia X with Nextcloud 17.0.2 and its Calendar app in version 1.7.2.

Benjamin ( 2020-01-13 09:44:47 +0300 )edit

Can you gather logs following the procedure describe in this wiki page : https://sailfishos.org/wiki/CalDAV_and_CardDAV_Community_Contributions#Sync_Logs ?

Damien Caliste ( 2020-01-13 09:57:41 +0300 )edit

I have sent a log file to you via e-mail.

Benjamin ( 2020-01-13 10:32:14 +0300 )edit

Radicale is a local installation. The cause can be in radicale itself or in thunderbird. Have there been any updates for this within last weeks/days, or for the OS?

Maybe SFOS is not guilty.

4carlos ( 2020-01-13 10:40:31 +0300 )edit

3 Answers

Sort by » oldest newest most voted

answered 2020-01-13 17:45:19 +0300

updated 2020-01-13 20:15:00 +0300

With the great help of @Benjamin who provided logs and who found the root of the issue, noticing that the LAST-MODIFICATION tag was missing for some events, we found that there is an issue in the sync plugin where some events may be imported from server with a modification date set to a value later than the sync time stamp. This makes them appear as modified during the next sync process. This push to the server may result in a failure in case where the calendar is read-only. As a consequence, this failure is stopping the full sync process for every calendars, and the step of importing the remote changes is never done.

I'm proposing a merge request upstream that should fix this particular issue. I've also compiled a package of the CalDAV plugin based on the version in 3.2.1 with the fix described above: buteo-sync-plugin-caldav-0.1.56-1.armv7hl.rpm.gz

edit flag offensive delete publish link more


I tried your package. I can install it. But when triggering a synchronization, it receives a valid REPORT response for a calendar and then crashes:

[D] unknown:0 - "\tContent-Type : application/xml; charset=utf-8"
[D] unknown:0 - "REPORT response data:<?xml version=\"1.0\"?>"
[D] unknown:0 - "<d:multistatus xmlns:d=\"DAV:\" xmlns:s=\"http://sabredav.org/ns\" xmlns:cal=\"urn:ietf:params:xml:ns:caldav\" xmlns:cs=\"http://calendarserver.org/ns/\" xmlns:oc=\"http://owncloud.org/ns\" xmlns:nc=\"http://nextcloud.org/ns\"><d:response>[…]</d:response></d:multistatus>"
[D] unknown:0 - "---------------------------------------------------------------------"
[D] unknown:0 - Process tags for server path "/remote.php/dav/calendars/benjamin/privat-benjamin/"
[W] unknown:0 - sqlite3_prepare error code: 21
[W] unknown:0 - out of memory
[D] unknown:0 - Process  "/usr/lib/buteo-plugins-qt5//oopp/caldav-client"  finished with exit code 11
[W] unknown:0 - Invalid reply for getSyncResults from plugin
[D] unknown:0 - Session finished: "caldav-sync-9" , status: 3
[D] unknown:0 - aStatus 3
[D] unknown:0 - ProfileManager::syncProfile( "caldav-sync-9" )
[D] unknown:0 - found a valid sync profile with the given name: "caldav-sync-9"
[W] unknown:0 - Invalid reply for getSyncResults from plugin
[W] unknown:0 - Invalid reply for uninit from plugin
[D] unknown:0 - Stopping the OOP process for  "caldav"
[D] unknown:0 - ProfileManager::syncProfile( "caldav-sync-9" )
Benjamin ( 2020-01-13 18:39:55 +0300 )edit

@Benjamin, sorry I compiled it with a version of mKCal that is not binary compatible with the one in 3.2.1. I've replaced the RPM in the answer.

Damien Caliste ( 2020-01-13 20:14:16 +0300 )edit

This works! thx for taking care!

mrtrm ( 2020-01-14 00:42:48 +0300 )edit

Incredible. Congratulations on finding the bug.

If I create calendars with Radicale I cannot set them read-only. This is not possible with Evolution either. How is that done? Second, where is the cause of the missing LAST-MODIFICATION tag? I can not reproduce it. I am interested in the cause of the problem. Is it the CalDAV plugin, or the Radicale server or the calendar? Who caused the wrong modification date.

4carlos ( 2020-01-14 06:37:38 +0300 )edit

@Damien Caliste: Sorry to bother you again. After installing your new RPM, the crash is gone, but the original error is still there:

[W] unknown:0 - The "PUT" operation failed with error: QNetworkReply::NetworkError(ContentNotFoundError) : 401
[W] unknown:0 - "PUT" request failed. 401 "Network request failed with QNetworkReply::NetworkError: 203"
[W] unknown:0 - Aborting sync, "PUT" failed "Network request failed with QNetworkReply::NetworkError: 203" for notebook "/remote.php/dav/calendars/user/personal_shared_by_anotheruser/" of account: "9"
[D] unknown:0 - Notebook sync finished. Total agents: 5
[W] unknown:0 - Aborting! Notebook synchronisation failed: 401 : "Network request failed with QNetworkReply::NetworkError: 203"
[W] unknown:0 - CalDAV sync failed: 401 "Network request failed with QNetworkReply::NetworkError: 203"

@4carlos: The calendar is read-only because another Nextcloud user shared it as read-only with me. I believe the missing LAST-MODIFIED field is caused by a client. In my case the the events contain the information that they have been created by Mac OS X, probably its calendar application.

Benjamin ( 2020-01-14 11:15:00 +0300 )edit

answered 2020-04-27 10:02:50 +0300

jovirkku gravatar image

This issue should be fixed in OS release

edit flag offensive delete publish link more

answered 2020-05-02 15:09:10 +0300

50Hz gravatar image

I'm afraid, this issue persists. In 3.2.1 I could fix this error with th version of buteo-sync-plugin for caldav, but after upgrading to the error is back again.

Syncing with my caldav-Calendars at mailbox.org (Open Xchange 7.10.2 Rev22) all events from my SFOS-Device are synced to the server, but no event entered on the server is synced to my SFOS-Device.

Can I try the fixed version of the buteo-sync-plugin-caldav 0.1.56 or do I need a fixed version of 0.1.60?

Not being able to synchronize my calendar is a real exclusion criterion for a OS for mobile devices - especially since the SFOS calendar app is very uncomfortable and the Android subsystem does not offer a calendar - in any case, neither synchronization with the calendar in the subsystem nor access to the SFOS calendar is possible. Neither in 3.2 nor in 3.3.

edit flag offensive delete publish link more
Login/Signup to Answer

Question tools



Asked: 2020-01-12 15:06:19 +0300

Seen: 698 times

Last updated: Apr 27 '20