• Hello,
    using davx with nextcloud on an lineage device with default calendar app.
    Got a reminder about an birthday, since then constant 404 error from davx about that birthday.
    Error isn’t present from another device with same setup (same nextcloud, same user).

    How can I fix this?

    Possibly related:

    debug_info: (SANITIZED!!!)

    --- BEGIN DEBUG INFO ---
    
    SYNCHRONIZATION INFO
    Account: Account {name=jdoe@email.com, type=bitfire.at.davdroid}
    Authority: com.android.calendar
    
    EXCEPTION
    at.bitfire.dav4jvm.exception.NotFoundException: HTTP 404 
    	at at.bitfire.dav4jvm.DavResource.checkStatus(DavResource.kt:6)
    	at at.bitfire.dav4jvm.DavResource.checkStatus(DavResource.kt:3)
    	at at.bitfire.dav4jvm.DavResource.put(DavResource.kt:2)
    	at at.bitfire.dav4jvm.DavResource.put$default(DavResource.kt:1)
    	at at.bitfire.davdroid.syncadapter.SyncManager$uploadDirty$3.invoke(SyncManager.kt:5)
    	at at.bitfire.davdroid.syncadapter.SyncManager$uploadDirty$3.invoke(SyncManager.kt:1)
    	at at.bitfire.davdroid.syncadapter.SyncManager.remoteExceptionContext(SyncManager.kt:1)
    	at at.bitfire.davdroid.syncadapter.SyncManager.uploadDirty(SyncManager.kt:17)
    	at at.bitfire.davdroid.syncadapter.SyncManager.uploadDirty(SyncManager.kt:31)
    	at at.bitfire.davdroid.syncadapter.SyncManager$uploadDirty$1$1$1.invoke(SyncManager.kt:2)
    	at at.bitfire.davdroid.syncadapter.SyncManager$uploadDirty$1$1$1.invoke(SyncManager.kt:1)
    	at at.bitfire.davdroid.syncadapter.SyncManager.localExceptionContext(SyncManager.kt:1)
    	at at.bitfire.davdroid.syncadapter.SyncManager$uploadDirty$1$1.invokeSuspend(SyncManager.kt:2)
    	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:3)
    	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:19)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    	at java.lang.Thread.run(Thread.java:919)
    
    HTTP REQUEST
    Request{method=PUT, url=https://mycloud.com/nextcloud/remote.php/dav/calendars/jdoe/contact_birthdays/contacts-AB1A5FBF-7AF5-4C6D-84A4-84AFD89B8CE7.vcf.ics, headers=[Accept-Encoding:br,gzip]}
    BEGIN:VCALENDAR
    VERSION:2.0
    PRODID:DAVx5/3.3.8-ose ical4j/3.0.21 (org.lineageos.etar)
    BEGIN:VEVENT
    DTSTAMP:20210217T191216Z
    UID:3f55bda5-e63f-4008-8abf-3ac8f8bb05db
    SEQUENCE:1
    SUMMARY:Jane Doe (*1986)
    DTSTART;VALUE=DATE:19860201
    DTEND;VALUE=DATE:19860202
    RRULE:FREQ=YEARLY
    CLASS:PUBLIC
    TRANSP:TRANSPARENT
    X-NEXTCLOUD-BC-FIELD-TYPE:BDAY
    X-NEXTCLOUD-BC-UNKNOWN-YEAR:0
    X-NEXTCLOUD-BC-YEAR:1986
    END:VEVENT
    END:VCALENDAR
    
    
    HTTP RESPONSE
    Response{protocol=h2, code=404, message=, url=https://mycloud.com/nextcloud/remote.php/dav/calendars/jdoe/contact_birthdays/contacts-AB1A5FBF-7AF5-4C6D-84A4-84AFD89B8CE7.vcf.ics}
    <?xml version="1.0" encoding="utf-8"?>
    <d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
      <s:exception>Sabre\DAV\Exception\NotFound</s:exception>
      <s:message>Node with name 'contacts-AB1A5FBF-7AF5-4C6D-84A4-84AFD89B8CE7.vcf.ics' could not be found</s:message>
    </d:error>
    
    
    LOCAL RESOURCE
    LocalEvent=[eTag=null, fileName=contacts-AB1A5FBF-7AF5-4C6D-84A4-84AFD89B8CE7.vcf.ics, flags=1, scheduleTag=null, weAreOrganizer=true, calendar=at.bitfire.davdroid.resource.LocalCalendar@218864f, event=Event=[alarms=[], attendees=[], categories=[], classification=CLASS:PUBLIC, color=null, description=null, dtEnd=DTEND;VALUE=DATE:19860202, dtStart=DTSTART;VALUE=DATE:19860201, duration=null, exDates=[], exRules=[], exceptions=[], lastModified=null, location=null, opaque=false, organizer=null, rDates=[], rRules=[RRULE:FREQ=YEARLY
    ], recurrenceId=null, status=null, summary=Jane Doe (*1986), unknownProperties=[X-NEXTCLOUD-BC-FIELD-TYPE:BDAY
    , X-NEXTCLOUD-BC-UNKNOWN-YEAR:0
    , X-NEXTCLOUD-BC-YEAR:1986
    ], userAgents=[org.lineageos.etar], sequence=1, uid=3f55bda5-e63f-4008-8abf-3ac8f8bb05db], id=11]
    
    REMOTE RESOURCE
    https://mycloud.com/nextcloud/remote.php/dav/calendars/jdoe/contact_birthdays/contacts-AB1A5FBF-7AF5-4C6D-84A4-84AFD89B8CE7.vcf.ics
    
    SOFTWARE INFORMATION
    
    ┌────────────────────────────────┬──────────────────────────┬───────────┬──────────────────────────────┬───────┐
    │ Package                        │ Version                  │ Code      │ Installer                    │ Notes │
    ├────────────────────────────────┼──────────────────────────┼───────────┼──────────────────────────────┼───────┤
    │ at.bitfire.davdroid            │ 3.3.8-ose                │ 303080002 │ org.fdroid.fdroid.privileged │       │
    │ com.android.providers.contacts │ 10                       │ 29        │ —                            │       │
    │ com.android.providers.calendar │ 10                       │ 29        │ —                            │       │
    │ com.android.contacts           │ 1.7.31                   │ 10731     │ —                            │       │
    │ org.lineageos.etar             │ 10                       │ 29        │ —                            │       │
    │ org.wikipedia                  │ r/2.7.50340-r-2021-01-29 │ 50340     │ org.fdroid.fdroid.privileged │       │
    └────────────────────────────────┴──────────────────────────┴───────────┴──────────────────────────────┴───────┘
    
    
    SYSTEM INFORMATION
    
    Android version: 10 (lineage-userdebug 10 QQ3A.200805.001 eng.root.20210116.152140 dev-keys)
    Device: samsung
    Locale(s): [en_US]
    
    
    CONNECTVITY
    
     ☒ wlan0
       - [ Transports: WIFI Capabilities: NOT_METERED INTERNET NOT_RESTRICTED TRUSTED NOT_VPN VALIDATED NOT_ROAMING FOREGROUND NOT_CONGESTED NOT_SUSPENDED LinkUpBandwidth>=1048576Kbps LinkDnBandwidth>=1048576Kbps SignalStrength: -82]
       - DNS: 192.168.1.1 (private mode)
    
    Data saver: disabled
    
    
    CONFIGURATION
    
    Power saving disabled: yes
    System-wide synchronization: automatically
    
    Notifications:
     - sync  isBlocked=false
      * syncProblems: importance=3
      * syncIoErrors: importance=1
      * syncWarnings: importance=2
     - general: importance=3
     - debug: importance=4
    
    Permissions:
     - ACCESS_NETWORK_STATE: granted
     - ACCESS_WIFI_STATE: granted
     - INTERNET: granted
     - READ_SYNC_SETTINGS: granted
     - READ_SYNC_STATS: granted
     - WRITE_SYNC_SETTINGS: granted
     - RECEIVE_BOOT_COMPLETED: granted
     - REQUEST_IGNORE_BATTERY_OPTIMIZATIONS: granted
     - READ_CONTACTS: granted
     - WRITE_CONTACTS: granted
     - READ_CALENDAR: granted
     - WRITE_CALENDAR: granted
     - ACCESS_COARSE_LOCATION: denied
     - ACCESS_FINE_LOCATION: denied
     - ACCESS_BACKGROUND_LOCATION: denied
     - org.dmfs.permission.READ_TASKS: denied
     - org.dmfs.permission.WRITE_TASKS: denied
     - org.tasks.permission.READ_TASKS: denied
     - org.tasks.permission.WRITE_TASKS: denied
    
    
    ACCOUNTS
    
     - Account: jdoe@email.com
    
    ┌──────────────────────────────────┬────────────┬──────────────────────┬───────────────┐
    │ Authority                        │ isSyncable │ getSyncAutomatically │ Sync interval │
    ├──────────────────────────────────┼────────────┼──────────────────────┼───────────────┤
    │ at.bitfire.davdroid.addressbooks │ 1          │ true                 │ 240 min       │
    │ com.android.calendar             │ 1          │ true                 │ 240 min       │
    │ com.android.contacts             │ 0          │ false                │ —             │
    │ org.dmfs.tasks                   │ 0          │ false                │ 1440 min      │
    └──────────────────────────────────┴────────────┴──────────────────────┴───────────────┘
    
      WiFi only: false
      Contact group method: CATEGORIES
      Time range (past days): 90
      Default alarm (min before): null
      Manage calendar colors: true
      Use event colors: false
    
      * Address book: Contacts (jdoe@email.com pw)
       
       ┌────────────┬──────────────────────┬───────────────┐
       │ isSyncable │ getSyncAutomatically │ Sync interval │
       ├────────────┼──────────────────────┼───────────────┤
       │ 1          │ true                 │ —             │
       └────────────┴──────────────────────┴───────────────┘
       
           URL: https://mycloud.com/nextcloud/remote.php/dav/addressbooks/users/jdoe/contacts/
        Read-only: 0
    
    
    DATABASE DUMP
    
    android_metadata
    
    ┌────────┐
    │ locale │
    ├────────┤
    │ en_US  │
    └────────┘
    
    service
    
    ┌────┬────────────────────────┬─────────┬───────────────────────────────────────────────────────────────────────┐
    │ id │ accountName            │ type    │ principal                                                             │
    ├────┼────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤
    │ 1  │ jdoe@email.com         │ carddav │ https://mycloud.com/nextcloud/remote.php/dav/principals/users/jdoe/   │
    │ 2  │ jdoe@email.com         │ caldav  │ https://mycloud.com/nextcloud/remote.php/dav/principals/users/jdoe/   │
    └────┴────────────────────────┴─────────┴───────────────────────────────────────────────────────────────────────┘
    
    sqlite_sequence
    
    ┌────────────┬─────┐
    │ name       │ seq │
    ├────────────┼─────┤
    │ service    │ 2   │
    │ homeset    │ 3   │
    │ collection │ 3   │
    └────────────┴─────┘
    
    homeset
    
    ┌────┬───────────┬──────────┬─────────────────────────────────────────────────────────────────────────┬──────────┬─────────────┐
    │ id │ serviceId │ personal │ url                                                                     │ privBind │ displayName │
    ├────┼───────────┼──────────┼─────────────────────────────────────────────────────────────────────────┼──────────┼─────────────┤
    │ 1  │ 1         │ 1        │ https://mycloud.com/nextcloud/remote.php/dav/addressbooks/users/jdoe/   │ 1        │ —           │
    │ 2  │ 1         │ 0        │ https://mycloud.com/nextcloud/remote.php/dav/addressbooks/groups/Fam/   │ 1        │ —           │
    │ 3  │ 2         │ 1        │ https://mycloud.com/nextcloud/remote.php/dav/calendars/jdoe/            │ 1        │ —           │
    └────┴───────────┴──────────┴─────────────────────────────────────────────────────────────────────────┴──────────┴─────────────┘
    
    collection
    
    ┌────┬───────────┬───────────┬──────────────┬──────────────────────────────────────────────────────────────────────────────────┬──────────────────┬────────────┬───────────────┬───────────────────┬─────────────┬───────────────────────────────────────────────────────────────────────┬───────────┬──────────┬────────────────┬───────────────┬──────────────────┬────────┬──────┐
    │ id │ serviceId │ homeSetId │ type         │ url                                                                              │ privWriteContent │ privUnbind │ forceReadOnly │ displayName       │ description │ owner                                                                 │ color     │ timezone │ supportsVEVENT │ supportsVTODO │ supportsVJOURNAL │ source │ sync │
    ├────┼───────────┼───────────┼──────────────┼──────────────────────────────────────────────────────────────────────────────────┼──────────────────┼────────────┼───────────────┼───────────────────┼─────────────┼───────────────────────────────────────────────────────────────────────┼───────────┼──────────┼────────────────┼───────────────┼──────────────────┼────────┼──────┤
    │ 1  │ 1         │ 1         │ ADDRESS_BOOK │ https://mycloud.com/nextcloud/remote.php/dav/addressbooks/users/jdoe/contacts/   │ 1                │ 1          │ 0             │ Contacts          │ —           │ https://mycloud.com/nextcloud/remote.php/dav/principals/users/jdoe/   │ —         │ —        │ —              │ —             │ —                │ —      │ 1    │
    │ 2  │ 2         │ 3         │ CALENDAR     │ https://mycloud.com/nextcloud/remote.php/dav/calendars/jdoe/contact_birthdays/   │ 0                │ 0          │ 0             │ Contact birthdays │ —           │ https://mycloud.com/nextcloud/remote.php/dav/principals/users/jdoe/   │ -54       │ —        │ 1              │ 0             │ 0                │ —      │ 1    │
    │ 3  │ 2         │ 3         │ CALENDAR     │ https://mycloud.com/nextcloud/remote.php/dav/calendars/jdoe/dates/               │ 1                │ 1          │ 0             │ Dates             │ —           │ https://mycloud.com/nextcloud/remote.php/dav/principals/users/jdoe/   │ -13534004 │ —        │ 1              │ 1             │ 0                │ —      │ 1    │
    └────┴───────────┴───────────┴──────────────┴──────────────────────────────────────────────────────────────────────────────────┴──────────────────┴────────────┴───────────────┴───────────────────┴─────────────┴───────────────────────────────────────────────────────────────────────┴───────────┴──────────┴────────────────┴───────────────┴──────────────────┴────────┴──────┘
    
    room_master_table
    
    ┌────┬──────────────────────────────────┐
    │ id │ identity_hash                    │
    ├────┼──────────────────────────────────┤
    │ 42 │ b8699ef3cc4c62e8851df4360fb69e00 │
    └────┴──────────────────────────────────┘
    
    
    APP SETTINGS
    
    1. SharedPreferencesProvider canWrite=true
    
    ┌────────────────────────────┬───────────────┐
    │ Setting                    │ Value         │
    ├────────────────────────────┼───────────────┤
    │ distrust_system_certs      │ false         │
    │ hint_OpenTasksNotInstalled │ false         │
    │ override_proxy             │ false         │
    │ override_proxy_host        │ localhost     │
    │ override_proxy_port        │ 8118          │
    │ time_nextDonationPopup     │ 1619801605077 │
    └────────────────────────────┴───────────────┘
    
    2. DefaultsProvider canWrite=false
    
    ┌───────────────────────┬───────────┐
    │ Setting               │ Value     │
    ├───────────────────────┼───────────┤
    │ default_sync_interval │ 14400     │
    │ distrust_system_certs │ false     │
    │ override_proxy        │ false     │
    │ override_proxy_host   │ localhost │
    │ override_proxy_port   │ 8118      │
    └───────────────────────┴───────────┘
    
    --- END DEBUG INFO ---
    
  • developer

    @fabit Hello,

    Yes, you have already found the problem. Seems like Etar allowed you to edit the read-only event, which should not be possible.

    To fix this: make sure that Etar doesn’t modify events in read-only calendars. Can you please report this to Etar?

    To work around this: unselect the birthday calendar in DAVx⁵, sync, select it again, sync again.

    Does that work?


  • @rfc2822
    Thanks, that fixed it.

    I found this issue in etar from July 2019: Reminders in read-only calendars #523
    unfortunately no response so far…

Similar topics