Can not sync CalDAV since birthday event was changed



  • Contacts sync normally but calendar item doesn’t: “HTTP server error - HTTP 403 Forbidden” is the message.

    Pixel 3
    Android Q beta 4
    latest DAVx5 installed from F-Droid

    log:
    https://privatebin.net/?514e1d9e87efb396#WYXpg8WlIREySfzxfQpyBKUlvyre8SJXez5pahyUN2o=


  • developer

    @bungabunga While there may be a time correlation to the Android Q update, there is probably no causal correlation. The server’s error message from the log (in response to an uploaded event) is:

      <D:responsedescription>DTEND occurs before DTSTART</D:responsedescription>
    

    The uploaded event XXX_DELETED_XXX contains dtEnd=DTEND;VALUE=DATE:19700101, dtStart=DTSTART;VALUE=DATE:19790608

    So it starts in 1979 and ends in 1970, which doesn’t sound reasonable. 01 Jan 1970 is UNIX time zero, so this event should probably have null instead of zero. However, duration is also null, so this event doesn’t have length, which is not allowed as described on https://developer.android.com/reference/android/provider/CalendarContract.Events. I wonder how the event XXX_DELETED_XXX was inserted into the system? Why is it being uploaded again – did you change it with some app or did you insert it with a 3rd-party app?



  • hi, thanx for your reply!

    the event is a birthday of a friend. 1979 is the birth year. i remember that i changed this event recently only to remove the reminder. i don’t remember where exactly did i change it, there are three possibilities: 1. Etar calendar app on my phone dvice, 2. Fastmail web calendar and 3. Gnome calendar on my laptop. It was probably 1. or maybe 3.

    the recurrence is always set to forever, so the 1970 end date should have been set as a part of a bug somewhere on the road.

    but it seems because of this event no other event can be synced from my phone to Fastmail server. i’ll try to delete this one (and set it later as new) to see if that change something.

    UPDATE:

    i deleted the event and was imediately able to sync my device calendar again. a few other events that i set on my computer and were previously unable to sync were synced to my device now.

    do you think there’s something you can do on DAVx5 side so that one false event wouldn’t block syncing other events?

    thanks for your help again!

    PS - although i have DAVx5 installed from F-Droid i also bought it on Play Store to support your great work.


  • developer

    @bungabunga said in Can not sync CalDAV since upgraded my phone to Android Q:

    1. Etar calendar app on my phone dvice

    I think this is the most probable explanation. Somehow dtEnd was set to zero instead of null, which caused the problem. Normally, only calendar apps do such modifications.

    do you think there’s something you can do on DAVx5 side so that one false event wouldn’t block syncing other events?

    Unfortunately, this is more complicated than it sounds. At the moment, uploads are performed before downloads and upload errors interrupt the sync process. The reason is that incomplete uploads might have later impact on synchronization. For instance, the synchronization would see that the server has another version of the event and overwrite local changes (because the server always wins); or even delete the whole event if it hasn’t been uploaded once before.

    So, while it might be possible to optimize this, it would be a complicated change and at the moment that’s not a priority for us.


Log in to reply
 

Similar topics

  • 4
  • 2
  • 6