Unable to sync past calendar entries elder than 90 days
Well, I have just switched to DAVdroid it I like it very much. I have switched from CalDAV-/CardDAV-Sync.
I am using the latest DAVdroid version 184.108.40.206 from Google Play. Installation was very easy and straighforward compared to the above previous sync tool and everything runs fine except one thing: I am not able to sync calender entries elder than 90 days. Whenever I increase the limit to e.g. 120 days I am getting permanent sync errors that I cannot interpret. As soon as I reduce the limit to the default of 90 days everything runs fine again. I am using DAVdroid on CM 13.0 nightly from 2016-09-24 and my CalDAV/CardDAV server is ownCloud 9.1.3. Sorry for not giving immediately the exact error message, but its late and I just want to know, if it’s an known issue. If not, please let me know and I will provide more detailed information.
This seems to be a server problem (because if you change the setting, the only thing that changes is that DAVdroid says “please send events from the last 120 days” instead of “please send events from the last 90 days” to the server). Please post details of the the “permanent sync errors”; preferably directly to your server vendor.
Well, I have root access to my ownCloud 9.1.3 server. This is the corresponding log after an attempt to increase past events from default 90 to 120. I have deleted personal information, hopefully error message is still helpful:
SYNCHRONIZATION INFO Synchronization phase: 9 Account name: admin Authority: com.android.calendar EXCEPTION: java.lang.IllegalArgumentException: Invalid int: "T0" at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:165) at android.database.DatabaseUtils.readExceptionWithOperationApplicationExceptionFromParcel(DatabaseUtils.java:158) at android.content.ContentProviderProxy.applyBatch(ContentProviderNative.java:520) at android.content.ContentProviderClient.applyBatch(ContentProviderClient.java:419) at at.bitfire.ical4android.BatchOperation.runBatch(BatchOperation.java:93) at at.bitfire.ical4android.BatchOperation.commit(BatchOperation.java:55) at at.bitfire.ical4android.AndroidEvent.add(AndroidEvent.java:404) at at.bitfire.davdroid.syncadapter.CalendarSyncManager.processVEvent(CalendarSyncManager.java:228) at at.bitfire.davdroid.syncadapter.CalendarSyncManager.downloadRemote(CalendarSyncManager.java:194) at at.bitfire.davdroid.syncadapter.SyncManager.performSync(SyncManager.java:170) at at.bitfire.davdroid.syncadapter.CalendarsSyncAdapterService$SyncAdapter.sync(CalendarsSyncAdapterService.java:68) at at.bitfire.davdroid.syncadapter.SyncAdapterService$SyncAdapter.onPerformSync(SyncAdapterService.java:85) at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:272) SOFTWARE INFORMATION Package: at.bitfire.davdroid Version: 220.127.116.11-gplay (133) Mon Jan 09 21:31:31 GMT+01:00 2017 Installed from: com.android.vending JB Workaround installed: no CONFIGURATION System-wide synchronization: automatically Account: admin Address book sync. interval: manually Calendar sync. interval: manually OpenTasks sync. interval: — WiFi only: false [CardDAV] Contact group method: GROUP_VCARDS [CalDAV] Time range (past days): 120 Manage calendar colors: true SQLITE DUMP android_metadata | locale | | en_US | ---------- settings | setting | value | | hint_BatteryOptimizations | 0 | | hint_OpenTasksNotInstalled | 0 | ---------- ...
There’s probably an invalid iCalendar between 90 and 120 days in the past which can’t be parsed by the server, so it returns an error. Please contact your server support, this is not a DAVdroid problem.
Yeah, I could narrow down the conflicting event by playing with the past event setting. With past event up to 112 days everything works fine. The event in question is one with accidentally interchanged start and end date. I have no clue, why in spite of this the multi days event was displayed corrently - and moreover could even be synced with CalDAV-sync. As soon as I have corrected start and end time, I am able to sync past events with no limit.
Thanks for feedback. So topic could be marked as “solved”.