"Local storage error – Empty result from content provider"

  • admin

    can you click on the error and share it with us please? There is a lot more information in this log…

  • Here is an extract that doesn’t contain private information. Note that I have replaced some IDs, names of participants etc. with …

    LocalEvent=[eTag= ..., fileName=..., flags=1, weAreOrganizer=true, calendar=at.bitfire.davdroid.resource.LocalCalendar@..., event=Event=[alarms=[BEGIN:VALARM
    at.bitfire.ical4android.CalendarStorageException: Empty result from content provider when adding event
    	at at.bitfire.ical4android.AndroidEvent.add(AndroidEvent.kt:384)
    	at at.bitfire.davdroid.syncadapter.CalendarSyncManager$processVEvent$1$1.invoke(CalendarSyncManager.kt:175)
    	at at.bitfire.davdroid.syncadapter.CalendarSyncManager$processVEvent$1$1.invoke(CalendarSyncManager.kt:42)
    	at at.bitfire.davdroid.syncadapter.SyncManager.useLocal(SyncManager.kt:760)
    	at at.bitfire.davdroid.syncadapter.CalendarSyncManager$processVEvent$1.invoke(CalendarSyncManager.kt:174)
    	at at.bitfire.davdroid.syncadapter.CalendarSyncManager$processVEvent$1.invoke(CalendarSyncManager.kt:42)
    	at at.bitfire.davdroid.syncadapter.SyncManager.useLocal(SyncManager.kt:760)
    	at at.bitfire.davdroid.syncadapter.CalendarSyncManager.processVEvent(CalendarSyncManager.kt:166)
    	at at.bitfire.davdroid.syncadapter.CalendarSyncManager.access$processVEvent(CalendarSyncManager.kt:42)
    	at at.bitfire.davdroid.syncadapter.CalendarSyncManager$downloadRemote$2$1$1.invoke(CalendarSyncManager.kt:141)
    	at at.bitfire.davdroid.syncadapter.CalendarSyncManager$downloadRemote$2$1$1.invoke(CalendarSyncManager.kt:42)
    	at at.bitfire.davdroid.syncadapter.SyncManager.useRemote(SyncManager.kt:785)
    	at at.bitfire.davdroid.syncadapter.CalendarSyncManager$downloadRemote$2$1.invoke(CalendarSyncManager.kt:133)
    	at at.bitfire.davdroid.syncadapter.CalendarSyncManager$downloadRemote$2$1.invoke(CalendarSyncManager.kt:42)
    	at at.bitfire.dav4android.Response$Companion.parse(Response.kt:211)
    	at at.bitfire.dav4android.DavResource$processMultiStatus$2.invoke(DavResource.kt:384)
    	at at.bitfire.dav4android.DavResource.processMultiStatus(DavResource.kt:403)
    	at at.bitfire.dav4android.DavResource.processMultiStatus(DavResource.kt:354)
    	at at.bitfire.dav4android.DavCalendar.multiget(DavCalendar.kt:150)
    	at at.bitfire.davdroid.syncadapter.CalendarSyncManager$downloadRemote$2.invoke(CalendarSyncManager.kt:132)
    	at at.bitfire.davdroid.syncadapter.CalendarSyncManager$downloadRemote$2.invoke(CalendarSyncManager.kt:42)
    	at at.bitfire.davdroid.syncadapter.SyncManager.useRemote(SyncManager.kt:774)
    	at at.bitfire.davdroid.syncadapter.SyncManager.useRemoteCollection(SyncManager.kt:795)
    	at at.bitfire.davdroid.syncadapter.CalendarSyncManager.downloadRemote(CalendarSyncManager.kt:131)
    	at at.bitfire.davdroid.syncadapter.SyncManager$syncRemote$1$1.run(SyncManager.kt:438)
    	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457)
    	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
    	at java.lang.Thread.run(Thread.java:784)
  • developer

    @6042114fa0 Can you send the full debug info of the error to play@bitfire.at (PGP key)?

  • Sorry, I’m not allowed to do this as this is a company calendar. I’m happy to help though – can you set up a Zimbra calendar yourself and share it with me? Then invite me to an event series, and I’ll see whether that can be synced successfully or not.

  • developer

    @6042114fa0 We don’t have a Zimbra server here at the moment. Can’t you star out all personal information in the debug info of the exception? It shouldn’t be that much. The actual event details are not interesting for debugging, but the stack trace and the other information are.

  • But I did post the stack trace above, right? What else would be useful?

  • developer

    @6042114fa0 Is there a “Caused by”? I’d really like to see the whole debug info of the exception. There are often things which indicate potential problems, but I can’t know before I see it.

  • No “caused by”. I have to head off now, but will send you an anonymised version of the full output soon.

  • @rfc2822 Just sent you an anonymised version of the full debug output.

  • Any update?

  • developer

    @6042114fa0 Hello,

    I couldn’t reproduce the problem with Android 8.1 (emulator) and an iCalendar which I have created from your event data. However, I noticed that it seems to contain RRULE:FREQ=DAILY;BYDAY=MO,TU,WE,TH,FR – maybe this unlimited number of instances causes problems on your device, for instance because there’s no more memory to store the instance data? This could cause the Android calendar storage (which does RRULE expansion) to crash, which would then cause an empty response to DAVdroid.

    Does it work when you use no or another RRULE with a limited number of instances? How much (disk) memory do you have on your device? What happens if you delete this event – does the problem occur for other events, too? Do you have another Android device where you could try synchronization? Is there any other way to reproduce the problem, so that I can get an idea?

  • Just created an event series with no end date in a different calendar. Syncing without problems.
    My gut feeling is that it’s more related to the fact that I was invited to the event by someone else, i.e. someone else actually owns the event series.
    Also I’m not sure whether emulating using Android 8.1 helps, since it’s working fine on my Samsung device, not on my Huawei device though (as mentioned at the beginning of this thread).

  • developer

    @6042114fa0 If you find a way to reproduce the problem, please let me know. I’d have to reproduce the problem in order to debug it. Unfortunately, Android components which don’t return anything to DAVdroid are usually difficult to debug…

  • Sure, but that would require a Zimbra server where I have more than one account so I can play around. I’m afraid I don’t have such a server.

  • developer

    @6042114fa0 You could also try to clear the calendar storage:

    1. Android settings / Apps / Show system apps
    2. Choose Calendar storage (not the Calendar app)
    3. Storage / Clear data (locally deletes all unsynced events, too – won’t delete anything from the server)
    4. Reboot
    5. Force-sync in DAVdroid

    Does that help?

  • @rfc2822 See above. That was already suggested to me, and it didn’t help. Wiping the entire cache partition (as suggested by Huawei) also didn’t change anything.
    Were you using an emulator running a Huawei EMUI?

  • developer

    @6042114fa0 I see, sorry, I haven’t read the whole thread again. There is no Huawei image in the Android SDK.

    Unfortunately I don’t have any further hints. I guess it must be something specific to your device. If there’s something certain I can do for you, just let me know.

  • Finally figured out the reason for this. In Zimbra, there is a recurrence rule “Every weekday”. This causes the error. Setting the event to the (equivalent) rule “every week” (with only “Monday”, “Tuesday”, “Wednesday”, “Thursday” and “Friday” enabled) does not cause the error.

    It apparently doesn’t like this bit:


    …whereas this one is accepted:


    Can we do anything about this?

  • developer

    @6042114fa0 RRULE expansion is done by Android (calendar storage) and not by DAVdroid. DAVdroid only stores the string into the RRULE field of the event.

    FREQ=DAILY has worked in my local test, so it must be specific to your Android version/firmware. Can you update to a newer Android version?

Similar topics

  • 2
  • 3
  • 2