Modifying birthday calendar after updating contact birthday



  • Hi,

    I am a happy user of DAVDroid with Nextcloud on my phone running LineageOS. I tried to add a birth date on a contact from my phone, but upload strangely fails with a 404 error. I can not understand where the issue comes from and I hope someone can help here.

    Here is the DADdroid log (sanitized), and here is the corresponding Apache access log:

    192.168.1.254 - - [05/Oct/2018:10:27:33 +0200] "PUT /remote.php/dav/calendars/yvan/contact_birthdays/contacts-pas-id-565B107600000032.vcf.ics HTTP/1.1" 404 1655 "-" "DAVdroid/2.0.4-ose (2018/09/
    10; dav4android; okhttp/3.11.0) Android/7.1.2"
    

    When I type the above URL in my browser, the server returns the ICS file.

    Best Regards,
    Yvan


  • developer

    Nextcloud's birthday calendar is not writable. It seems like you or some app has updated the calendar on your phone, so that DAVdroid tries to upload the changed event:

    Request{method=PUT, url=https://nextcloud.some.domain/remote.php/dav/ calendars/yvan/contact_birthdays/ contacts-pas-id-565B107600000032.vcf.ics, tags={}}

    Note that this is not about uploading the contact itself, but about the "birthday calendar", which is marked as read-only:

     	|  _id | serviceID | url | readOnly | displayName | description | color | timezone | supportsVEVENT | supportsVTODO | sync | type | source | forceReadOnly | privWriteContent | privUnbind |
    	|  17 | 2 | https://nextcloud.some.domain/remote.php/dav/calendars/yvan/contact_birthdays/ | 1 | Anniversaires des contacts | <null> | -54 | <null> | 1 | 0 | 1 | CALENDAR | <null> | 0 | 0 | 0 |
    

    so this should not happen.

    Is there any app installed which could have modified the birthday calendar event despite it being read-only?



  • OK, this becomes clearer. I only have the default "contacts" and "calendar" apps from LineageOS (I only have a very few apps installed). I probably did not change this birthday with the "calendar" app (I just tried and it complains that I should add a new calendar), so I think it was with the "contact" app.

    I delete the birthday from "contact", but it remains visible in the "calendar" app, strange. I would appreciate any suggestions



  • So after a few minutes the birthday disappeared from the "calendar" app. I could then re-add the birthday from the "contacts" app and the following upload with DAVdroid worked flawlessly!

    I could not find the root of this issue, but this fix is really welcome.

    Best regards,
    Yvan


  • developer

    This is strange, because the synchronized birthday calendar is just a calendar like all others, and I don't think the Contacts app or what else should put birthdays into randomly selected DAVdroid calendars.

    Are you sure that you didn't try to change the birthday in the Calendar app? (But it shouldn't be possible anyway, because the calendar is falgged read-only.)

    I'll mark this as solved. If you find out something relevant or if there's anything I can do for you in this matter, just let me know here.

    PS: https://github.com/nextcloud/server/issues/11633 – 403 instead of 404 could help to understand the problem when someone encounters the error message