"Local storage error – Empty result from content provider"



  • Some contact series (to which I was invited) in my Zimbra calendar will not get synced to my Huawei device by DAVdroid. I receive the following error: "Local storage error – Empty result from content provider when adding event"

    CalDAV-Sync shows the same behaviour, albeit with no error message – the events simply don't get synced.

    On a Samsung device, everything works smoothly, however.

    I'm not sure whether any additional logs are required. If so, please let me know.


  • developer

    Hello,

    Thanks for your report! Please provide steps to reproduce, Web server and CalDAV/CardDAV server logs taken while the problem occurs, DAVdroid debug info (DAVdroid / Settings / Debug info) and verbose DAVdroid logs etc as described in [READ BEFORE POSTING] What's required to diagnose a problem.


  • admin

    You can either try to reset/wipe your phone since there seems to be an internal problem with the storage or you try to clear the contacs storage manually. Go to the Android settings / Apps and choose Contacts Storage. There you can wipe it. Keep in mind that this will wipe all contacts from your device (from any source, incl. Google contacts)! So have a reliable backup somewhere.



  • I'm really sorry, I was stressed when I wrote the above post – I meant "event series", not "contact series" (can I still edit my post above?). Hence your comment on contacts storage doesn't apply. Is there something similar I can do for calendar events?

    I've been in touch with Huawei in the meantime, and they told me their phone didn't fully support the CalDAV protocol, by the way.

    Regarding logs: I can't provide web server logs as this is my employer's Zimbra server. I can, however, provide an anonymised extract of my DAVdroid logs, if that helps? If yes, I'll do that asap.

    Another data point: The problem does not occur with an event series created on Nextcloud. The issue only seems to apply to the specific set-up Zimbra + invite to an event series + Huawei phone.


  • admin

    @6042114fa0 yes, it is found in the Android settings / Apps / Calendar Storage. Deleting this will reset the storage which results in deletion of all (!) local calendars, also ones not synced with DAVdroid.



  • @devvv4ever There is only "Calendar", not "Calendar Storage". Deleted the data. Didn't solve the problem unfortunately.
    I still get the same error message.


  • admin

    It's not the "Calendar", there must be a "Calendar Storage". Maybe you've not viewed the System apps. It is one of these apps which are normally not shown in the list.



  • Ok, found it (it was hidden). Cleared the calendar storage. Unfortunately, no change – the sync error still appears.


  • admin

    Which error appears?



  • Still the one mentioned in the thread title – "Local storage error – Empty result from content provider when adding event".


  • 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 ...

    LOCAL RESOURCE:
    LocalEvent=[eTag= ..., fileName=..., flags=1, weAreOrganizer=true, calendar=at.bitfire.davdroid.resource.LocalCalendar@..., event=Event=[alarms=[BEGIN:VALARM
    ACTION:DISPLAY
    TRIGGER:-PT5M
    DESCRIPTION:Reminder
    END:VALARM
    
    ...
    
    EXCEPTION:
    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?