Sam issue as #181 Invalid DAV response: Couldn't parse Multi-Status response on PROPFIND



  • hi! i have the same problem with my owncloud server, can you help?

    D/davdroid.WebDavResource(31917): Using preemptive authentication (not compatible with Digest auth)
    D/davdroid.SNISocketFactory(31917): Setting SNI hostname
    I/davdroid.SNISocketFactory(31917): Established TLSv1 connection with xxx.com using TLS_ECDHE_RSA_WITH_RC4_128_SHA
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 >> "OPTIONS /owncloud/remote.php/carddav/ HTTP/1.1[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 >> "Host: xxx.com[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 >> "Connection: Keep-Alive[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 >> "User-Agent: DAVdroid/0.5.11-alpha[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 >> "Accept-Encoding: gzip,deflate[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 >> "Authorization: Basic xxxxxxxxxxx=[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 >> "[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 << "HTTP/1.1 200 OK[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 << "Date: Tue, 01 Apr 2014 18:58:18 GMT[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 << "Server: Apache[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 << "Set-Cookie: 51a889bbe4727=edekv7dbe0pv3akpubt8c99tb7; path=/owncloud; HttpOnly[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 << "Expires: Thu, 19 Nov 1981 08:52:00 GMT[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 << "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 << "Pragma: no-cache[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 << "Strict-Transport-Security: max-age=31536000[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 << "Set-Cookie: 51a889bbe4727=mioa6qr91vdj6tt4eosle33rm6; path=/owncloud; secure; HttpOnly[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 << "Allow: OPTIONS, GET, HEAD, DELETE, PROPFIND, PUT, PROPPATCH, COPY, MOVE, REPORT[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 << "DAV: 1, 3, extended-mkcol, addressbook, access-control, calendarserver-principal-property-search[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 << "MS-Author-Via: DAV[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 << "Accept-Ranges: bytes[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 << "X-Sabre-Version: 1.7.6[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 << "Vary: Accept-Encoding[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 << "Content-Encoding: gzip[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 << "Strict-Transport-Security: max-age=15768000[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 << "Keep-Alive: timeout=5, max=100[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 << "Connection: Keep-Alive[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 << "Transfer-Encoding: chunked[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 << "Content-Type: text/html[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-17 << "[\r][\n]"
    D/davdroid.SNISocketFactory(31917): Setting SNI hostname
    I/davdroid.SNISocketFactory(31917): Established TLSv1 connection with xxx.com using TLS_ECDHE_RSA_WITH_RC4_128_SHA
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 >> "PROPFIND /owncloud/remote.php/carddav/ HTTP/1.1[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 >> "Content-Type: text/xml; charset=UTF-8[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 >> "Depth: 0[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 >> "Content-Length: 88[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 >> "Host: xxx.com[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 >> "Connection: Keep-Alive[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 >> "User-Agent: DAVdroid/0.5.11-alpha[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 >> "Accept-Encoding: gzip,deflate[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 >> "Authorization: Basic xxxxxxxxxx=[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 >> "[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 >> "[\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 >> " [\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 >> " [\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 >> " [\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 >> ""
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "HTTP/1.1 207 Multi-Status[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "Date: Tue, 01 Apr 2014 18:58:18 GMT[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "Server: Apache[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "Set-Cookie: 51a889bbe4727=bpjmqouqt8rgiqqrfeesr51ph6; path=/owncloud; HttpOnly[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "Expires: Thu, 19 Nov 1981 08:52:00 GMT[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "Pragma: no-cache[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "Strict-Transport-Security: max-age=31536000[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "Set-Cookie: 51a889bbe4727=eo16fe92bsol29erqk0ocegl93; path=/owncloud; secure; HttpOnly[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "Vary: Brief,Prefer[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "DAV: 1, 3, extended-mkcol, addressbook, access-control, calendarserver-principal-property-search[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "Strict-Transport-Security: max-age=15768000[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "Keep-Alive: timeout=5, max=100[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "Connection: Keep-Alive[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "Transfer-Encoding: chunked[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "Content-Type: application/xml; charset=utf-8[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "1ae[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "[\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "[\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "<?xml version="1.0" encoding="utf-8"?>[\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "/owncloud/remote.php/carddav//d:href/owncloud/remote.php/carddav/principals/vader//d:href/d:current-user-principal/d:propHTTP/1.1 200 OK/d:status/d:propstat/d:response/d:multistatus[\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "0[\r][\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "[\r][\n]"
    E/davdroid.ServerInfoLoader(31917): DAV error while querying server info
    E/davdroid.ServerInfoLoader(31917): at.bitfire.davdroid.webdav.DavException: Invalid DAV response: Couldn't parse Multi-Status response on PROPFIND
    E/davdroid.ServerInfoLoader(31917): at at.bitfire.davdroid.webdav.WebDavResource.propfind(WebDavResource.java:274)
    E/davdroid.ServerInfoLoader(31917): at at.bitfire.davdroid.syncadapter.QueryServerDialogFragment$ServerInfoLoader.loadInBackground(QueryServerDialogFragment.java:129)
    E/davdroid.ServerInfoLoader(31917): at at.bitfire.davdroid.syncadapter.QueryServerDialogFragment$ServerInfoLoader.loadInBackground(QueryServerDialogFragment.java:1)
    E/davdroid.ServerInfoLoader(31917): at android.content.AsyncTaskLoader.onLoadInBackground(AsyncTaskLoader.java:312)
    E/davdroid.ServerInfoLoader(31917): at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:69)
    E/davdroid.ServerInfoLoader(31917): at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:57)
    E/davdroid.ServerInfoLoader(31917): at android.os.AsyncTask$2.call(AsyncTask.java:288)
    E/davdroid.ServerInfoLoader(31917): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    E/davdroid.ServerInfoLoader(31917): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    E/davdroid.ServerInfoLoader(31917): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    E/davdroid.ServerInfoLoader(31917): at java.lang.Thread.run(Thread.java:841)
    E/davdroid.ServerInfoLoader(31917): Caused by: org.xmlpull.v1.XmlPullParserException: Unexpected token (position:unknown @3:1 in java.io.InputStreamReader@42748a6)
    E/davdroid.ServerInfoLoader(31917): at org.kxml2.io.KXmlParser.next(KXmlParser.java:422)
    E/davdroid.ServerInfoLoader(31917): at org.kxml2.io.KXmlParser.next(KXmlParser.java:310)
    E/davdroid.ServerInfoLoader(31917): at org.simpleframework.xml.stream.PullReader.read(PullReader.java:105)
    E/davdroid.ServerInfoLoader(31917): at org.simpleframework.xml.stream.PullReader.next(PullReader.java:89)
    E/davdroid.ServerInfoLoader(31917): at org.simpleframework.xml.stream.NodeReader.readElement(NodeReader.java:111)
    E/davdroid.ServerInfoLoader(31917): at org.simpleframework.xml.stream.NodeReader.readRoot(NodeReader.java:85)
    E/davdroid.ServerInfoLoader(31917): at org.simpleframework.xml.stream.NodeBuilder.read(NodeBuilder.java:84)
    E/davdroid.ServerInfoLoader(31917): at org.simpleframework.xml.stream.NodeBuilder.read(NodeBuilder.java:58)
    E/davdroid.ServerInfoLoader(31917): at org.simpleframework.xml.core.Persister.read(Persister.java:543)
    E/davdroid.ServerInfoLoader(31917): at at.bitfire.davdroid.webdav.WebDavResource.propfind(WebDavResource.java:272)
    E/davdroid.ServerInfoLoader(31917): ... 10 more
    

  • developer

    It seems that the OwnCloud server response is misformatted:

    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "<?xml version="1.0" encoding="utf-8"?>[\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "/owncloud/remote.php/carddav//d:href/owncloud/remote.php/carddav/principals/vader//d:href/d:current-user-principal/d:propHTTP/1.1 200 OK/d:status/d:propstat/d:response/d:multistatus[\n]"
    D/ch.boye.httpclientandroidlib.wire(31917): http-outgoing-18 << "[\r][\n]"
    

    Can you check if your OwnCloud server works correctly? I don't think this is a DAVdroid problem.

    PS: Your logs where misformatted, too; please always enclose them in ```


  • developer

    Possibly a Keep-Alive issue, see #225 for details.



  • i will investigate that next week. however, just tried "ContactSync - Testversion" and there i can enter https://xxx.com/owncloud/remote.php/caddav/addressbooks/$user$/$contactlist$ and this works. maybe you could implement an "expert" mode where one can insert the whole url and no need for auto-provisioning?


  • developer

    Ok, I don't think this is a Keep-Alive issue because it's not a NoHttpResponseException but a org.xmlpull.v1.XmlPullParserException.

    Please follow up in #181.



  • hi!

    I solved the problem: some owncloud app added an invalid character in the xml answer to the client request. now it works great, thanks for your efforts!