InvalidDavResponseException: Expected 207 Multi-Status, got 200 OK



  • I'm using Davdroid since a long time now and it had worked very fine. Recently sychronization stopped working and I get an InvalidDavResponseException (see below). This happens only for accounts on a Horde Server (v5.2.13). I didn't change the configuration and only kept DAVdroid up-to-date.

    The error appears for calender and tasks.

    I have another Android phone were sychronization still works with an old version of DAVdroid (3.x). Thus I tried to downgrade on my (first) phone but this did not fix the error.

    Next, I created a new DAVdroid account using the same settings as an existing account. The error message "Couln'd refresh collection list" appears.

    I could narrow down the steps to reproduce the error message to tapping on "refresh calendar list" in the CalDAV context menu in the account settings.


    SYNCHRONIZATION INFO
    Synchronization phase: 1
    Account name: account1
    Authority: com.android.calendar
    
    EXCEPTION:
    at.bitfire.dav4android.exception.InvalidDavResponseException: Expected 207 Multi-Status, got 200 OK
    	at at.bitfire.dav4android.DavResource.assertMultiStatus(DavResource.java:324)
    	at at.bitfire.dav4android.DavResource.propfind(DavResource.java:277)
    	at at.bitfire.davdroid.syncadapter.CalendarSyncManager.queryCapabilities(CalendarSyncManager.java:91)
    	at at.bitfire.davdroid.syncadapter.SyncManager.performSync(SyncManager.java:142)
    	at at.bitfire.davdroid.syncadapter.CalendarsSyncAdapterService$SyncAdapter.onPerformSync(CalendarsSyncAdapterService.java:70)
    	at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java)
    
    SOFTWARE INFORMATION
    DAVdroid version: 1.4.0.3-ose (138) Mon Feb 20 01:10:19 CET 2017
    Installed from: org.fdroid.fdroid
    JB Workaround installed: no
    
    Android version: 4.2.2
    

    ... and tasks:

    SYNCHRONIZATION INFO
    Synchronization phase: 1
    Account name: account1
    Authority: org.dmfs.tasks
    
    EXCEPTION:
    at.bitfire.dav4android.exception.InvalidDavResponseException: Expected 207 Multi-Status, got 200 OK
    	at at.bitfire.dav4android.DavResource.assertMultiStatus(DavResource.java:324)
    	at at.bitfire.dav4android.DavResource.propfind(DavResource.java:277)
    	at at.bitfire.davdroid.syncadapter.TasksSyncManager.queryCapabilities(TasksSyncManager.java:89)
    	at at.bitfire.davdroid.syncadapter.SyncManager.performSync(SyncManager.java:142)
    	at at.bitfire.davdroid.syncadapter.TasksSyncAdapterService$SyncAdapter.onPerformSync(TasksSyncAdapterService.java:78)
    	at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java)
    

    new account, same error, different location:

    EXCEPTION:
    at.bitfire.dav4android.exception.InvalidDavResponseException: Expected 207 Multi-Status, got 200 OK
    	at at.bitfire.dav4android.DavResource.assertMultiStatus(DavResource.java:324)
    	at at.bitfire.dav4android.DavResource.propfind(DavResource.java:277)
    	at at.bitfire.davdroid.DavService$RefreshCollections.run(DavService.java:242)
    	at java.lang.Thread.run(Thread.java)

  • developer

    Seems to be a server problem. Did you ask Horde support?



  • hmm, if it is a server problem, why the second phone still works?



  • ok, issue solved!

    It was a problem with Horde. I shared a calendar with another user who is on another server. Every time I clicked the calendar in the web interface, I was logged out. After a while the link to the problem described here came into my mind. Now problem is fixed.