"No service available" while trying to set up DavMail sync

  • Hello,

    The never-ending battle to get DAVDroid sync with Exchange via DavMail continues… I actually had it working for a few months, however when a few days ago I attempted to set an account up from scratch I found I was no longer able to do so - instead of detecting available calendars I get “Invalid DAV response: No CalDAV-/CardDAV service is available at this location.” The device in question runs Cyanogenmod 11 (i.e. Android 4.4) and DavDroid, whereas the version of DavMail on the server is 4.6.1. Connecting to the same calendar using Lightning shows no problems.

    Here is the log I recorded during a failed attempt to connect. I have also tried appending “calendar/” to the URL and disabling preemptive authentication, to no avail. Unfortunately I no longer have the working account available, that installation got wiped and it turned out I didn’t have DAVDroid account configuration backed up properly.


  • developer

    As you can see in the logs, the DavMail server just ignores the requests for current-user-principal, addressbook-home-set etc.:

    D/Wire    ( 8836): http-outgoing-5 >> "PROPFIND /users/john.doe@example.com/ HTTP/1.1[\r][\n]"
    D/Wire    ( 8836): http-outgoing-5 >> "<propfind xmlns="DAV:">[\n]"
    D/Wire    ( 8836): http-outgoing-5 >> "   <prop>[\n]"
    D/Wire    ( 8836): http-outgoing-5 >> "      <current-user-principal/>[\n]"
    D/Wire    ( 8836): http-outgoing-5 >> "   </prop>[\n]"
    D/Wire    ( 8836): http-outgoing-5 >> "</propfind>"
    D/Wire    ( 8836): http-outgoing-5 << "HTTP/1.1 207 Multi-Status[\r][\n]"
    D/Wire    ( 8836): http-outgoing-5 << "<?xml version="1.0" encoding="UTF-8"?><D:multistatus xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:E="urn:ietf:params:xml:ns:carddav"><D:response><D:href>/users/john.doe@example.com/</D:href><D:propstat><D:prop></D:prop><D:status>HTTP/1.1 200 OK</D:status></D:propstat></D:response></D:multistatus>"

    Pretty-printed response:

    <?xml version="1.0" encoding="UTF-8"?>
    <D:multistatus xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:E="urn:ietf:params:xml:ns:carddav">
                <D:status>HTTP/1.1 200 OK</D:status>

    So DAVdroid has requested `current-user-principal´, but DavMail does neither report an error, nor does it return the requested property.

Similar topics