Skip to content

[Bug]: broken ics data leaves DAVx5 client with different results depending on who tries to sync #51476

@tkowtsch

Description

@tkowtsch

⚠️ This issue respects the following points: ⚠️

Bug description

The server install dates back to 2009 - it used to be a onwCloud install these days and was migrated to NextCloud somewhen in between.
The calendar of user1 seems to have some very old bogous events (e.g. from 2009).
The calendar of user1 is shared to user2 and user3 with read/write permissions.

All users sync the calendar to Android devices by using DAVx5 app.

If user1 starts a full sync all is ok (no error shown).
If user 2 and 3 sync last 90... x-hundred days: all ok.
If user 2 and 3 do a full sync they end up with a HTTP500 error in Davx5 and NextCloud Log shows the attached error log. No sync is executed.

Steps to reproduce

  1. Have such a bogous event in the calendar
  2. Sync as owner: all is ok
  3. Sync as user that the calendar is shared with: error is logged (on each and every sync cycle).

Expected behavior

  1. Sync should work the same way no matter who executes it. It either should fail or end gracefully any time.
  2. If bogous/misformatted events are found, there should be either some notification to the owner or the event should be repaired.

Nextcloud Server version

29

Operating system

Debian/Ubuntu

PHP engine version

PHP 8.3

Web server

Apache (supported)

Database engine version

MariaDB

Is this bug present after an update or on a fresh install?

None

Are you using the Nextcloud Server Encryption module?

None

What user-backends are you using?

  • Default user-backend (database)
  • LDAP/ Active Directory
  • SSO - SAML
  • Other

Configuration report

List of activated Apps

Enabled:
  - activity: 2.21.1
  - admin_audit: 1.19.0
  - bookmarks: 14.2.7
  - calendar: 4.7.16
  - circles: 29.0.0-dev
  - cloud_federation_api: 1.12.0
  - comments: 1.19.0
  - contacts: 6.0.3
  - contactsinteraction: 1.10.0
  - dashboard: 7.9.0
  - dav: 1.30.1
  - deck: 1.13.4
  - federatedfilesharing: 1.19.0
  - federation: 1.19.0
  - files: 2.1.1
  - files_pdfviewer: 2.10.0
  - files_sharing: 1.21.0
  - files_trashbin: 1.19.0
  - logreader: 2.14.0
  - lookup_server_connector: 1.17.0
  - nextcloud_announcements: 1.18.0
  - notes: 4.11.0
  - notifications: 2.17.0
  - oauth2: 1.17.1
  - password_policy: 1.19.0
  - photos: 2.5.0
  - polls: 7.4.1
  - privacy: 1.13.0
  - provisioning_api: 1.19.0
  - related_resources: 1.4.0
  - richdocuments: 8.4.10
  - richdocumentscode: 24.4.1204
  - serverinfo: 1.19.0
  - settings: 1.12.0
  - sharebymail: 1.19.0
  - support: 1.12.0
  - systemtags: 1.19.0
  - text: 3.10.1
  - theming: 2.4.0
  - twofactor_backupcodes: 1.18.0
  - updatenotification: 1.19.1
  - viewer: 2.3.0
  - workflowengine: 2.11.0
Disabled:
  - bruteforcesettings: 2.9.0
  - encryption: 2.17.0
  - files_downloadlimit: 2.0.0 (installed 2.0.0)
  - files_external: 1.21.0
  - files_reminders: 1.2.0 (installed 1.2.0)
  - files_versions: 1.22.0 (installed 1.22.0)
  - firstrunwizard: 2.18.0 (installed 2.18.0)
  - mail: 3.6.1 (installed 3.6.1)
  - recommendations: 2.1.0 (installed 2.1.0)
  - survey_client: 1.17.0 (installed 1.17.0)
  - suspicious_login: 7.0.0
  - twofactor_totp: 11.0.0-dev
  - user_ldap: 1.20.0
  - user_status: 1.9.0 (installed 1.9.0)
  - weather_status: 1.9.0 (installed 1.9.0)

Nextcloud Signing status

Nextcloud Logs

{"reqId":"Z9NBous5W2xKr8sIfzTukgAASzE","level":3,"time":"2025-03-13T20:35:46+00:00","remoteAddr":"84.170.129.187","user":"user2","app":"webdav","method":"REPORT","url":"/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/","message":"Unsupported VALUE parameter for DTEND property. You supplied \"\"","userAgent":"DAVx5/4.4.7-gplay (dav4jvm; okhttp/4.12.0) Android/14","version":"29.0.12.2","exception":{"Exception":"Sabre\\VObject\\InvalidDataException","Message":"Unsupported VALUE parameter for DTEND property. You supplied \"\"","Code":0,"Trace":[{"file":"/www/htdocs/w019aa97/nextcloud/3rdparty/sabre/vobject/lib/Parser/MimeDir.php","line":450,"function":"createProperty","class":"Sabre\\VObject\\Document","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/www/htdocs/w019aa97/nextcloud/3rdparty/sabre/vobject/lib/Parser/MimeDir.php","line":227,"function":"readProperty","class":"Sabre\\VObject\\Parser\\MimeDir","type":"->","args":["DTEND;TZID=Europe/Berlin;VALUE=:20170310T193000"]},{"file":"/www/htdocs/w019aa97/nextcloud/3rdparty/sabre/vobject/lib/Parser/MimeDir.php","line":213,"function":"parseLine","class":"Sabre\\VObject\\Parser\\MimeDir","type":"->","args":["DTEND;TZID=Europe/Berlin;VALUE=:20170310T193000"]},{"file":"/www/htdocs/w019aa97/nextcloud/3rdparty/sabre/vobject/lib/Parser/MimeDir.php","line":178,"function":"parseLine","class":"Sabre\\VObject\\Parser\\MimeDir","type":"->","args":["DTEND;TZID=Europe/Berlin;VALUE=:20170310T193000"]},{"file":"/www/htdocs/w019aa97/nextcloud/3rdparty/sabre/vobject/lib/Parser/MimeDir.php","line":90,"function":"parseDocument","class":"Sabre\\VObject\\Parser\\MimeDir","type":"->","args":[]},{"file":"/www/htdocs/w019aa97/nextcloud/3rdparty/sabre/vobject/lib/Reader.php","line":47,"function":"parse","class":"Sabre\\VObject\\Parser\\MimeDir","type":"->","args":["BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:ownCloud Calendar 0.8.1\nBEGIN:VEVENT\r\nUID:197bcf3963\r\nDTSTAMP:20161212T072134Z\r\nCREATED:20161212T072134Z\r\nLAST-MODIFIED:20161212T072134Z\r\nSUMMARY:KV Niedersedlitz\r\nDTSTART;TZID=Europe/Berlin:20170310T190000\r\nDTEND;TZID=Europe/Berlin;VALUE=:20170310T193000\r\nLOCATION:\r\nDESCRIPTION:\r\nCATEGORIES:\r\nEND:VEVENT\r\nEND:VCALENDAR",0]},{"file":"/www/htdocs/w019aa97/nextcloud/apps/dav/lib/CalDAV/CalendarObject.php","line":69,"function":"read","class":"Sabre\\VObject\\Reader","type":"::","args":["BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:ownCloud Calendar 0.8.1\nBEGIN:VEVENT\r\nUID:197bcf3963\r\nDTSTAMP:20161212T072134Z\r\nCREATED:20161212T072134Z\r\nLAST-MODIFIED:20161212T072134Z\r\nSUMMARY:KV Niedersedlitz\r\nDTSTART;TZID=Europe/Berlin:20170310T190000\r\nDTEND;TZID=Europe/Berlin;VALUE=:20170310T193000\r\nLOCATION:\r\nDESCRIPTION:\r\nCATEGORIES:\r\nEND:VEVENT\r\nEND:VCALENDAR"]},{"file":"/www/htdocs/w019aa97/nextcloud/3rdparty/sabre/dav/lib/CalDAV/Plugin.php","line":406,"function":"get","class":"OCA\\DAV\\CalDAV\\CalendarObject","type":"->","args":[]},{"file":"/www/htdocs/w019aa97/nextcloud/3rdparty/sabre/dav/lib/DAV/PropFind.php","line":95,"function":"Sabre\\CalDAV\\{closure}","class":"Sabre\\CalDAV\\Plugin","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/www/htdocs/w019aa97/nextcloud/3rdparty/sabre/dav/lib/CalDAV/Plugin.php","line":405,"function":"handle","class":"Sabre\\DAV\\PropFind","type":"->","args":["{urn:ietf:params:xml:ns:caldav}calendar-data",{"__class__":"Closure"}]},{"file":"/www/htdocs/w019aa97/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"propFind","class":"Sabre\\CalDAV\\Plugin","type":"->","args":[{"__class__":"Sabre\\DAV\\PropFind"},{"__class__":"OCA\\DAV\\CalDAV\\CalendarObject"}]},{"file":"/www/htdocs/w019aa97/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":1052,"function":"emit","class":"Sabre\\DAV\\Server","type":"->","args":["propFind",[{"__class__":"Sabre\\DAV\\PropFind"},{"__class__":"OCA\\DAV\\CalDAV\\CalendarObject"}]]},{"file":"/www/htdocs/w019aa97/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":1023,"function":"getPropertiesByNode","class":"Sabre\\DAV\\Server","type":"->","args":[{"__class__":"Sabre\\DAV\\PropFind"},{"__class__":"OCA\\DAV\\CalDAV\\CalendarObject"}]},{"file":"/www/htdocs/w019aa97/nextcloud/3rdparty/sabre/dav/lib/CalDAV/Plugin.php","line":437,"function":"getPropertiesForMultiplePaths","class":"Sabre\\DAV\\Server","type":"->","args":[["calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c03c8189a01eb0d0834d0259178ca8a.ics","calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c1424797a1c8c9bd44ab1278d2fa7f6.ics","calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c1f72d19d52a3779f651c19e511f957.ics","calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c408515a9dc8174c6810875eee835db.ics","calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c769641e1ad0ad4aa48bd6c1809c3a1.ics","calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c9946af973614db484beebbefabceed.ics","calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0cd2bfd82c71de252c42c8f479425831.ics","calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0cf9a8a8288f49ea9145f0c68aecdbf1.ics","calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0cfb244d56ec71bc22ad743687c85eb9.ics","calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0d42a1d2f1e042122db767f84b143902.ics"],["{DAV:}getcontenttype","{DAV:}getetag","{urn:ietf:params:xml:ns:caldav}schedule-tag","{urn:ietf:params:xml:ns:caldav}calendar-data"]]},{"file":"/www/htdocs/w019aa97/nextcloud/3rdparty/sabre/dav/lib/CalDAV/Plugin.php","line":253,"function":"calendarMultiGetReport","class":"Sabre\\CalDAV\\Plugin","type":"->","args":[{"__class__":"Sabre\\CalDAV\\Xml\\Request\\CalendarMultiGetReport","properties":["{DAV:}getcontenttype","{DAV:}getetag","{urn:ietf:params:xml:ns:caldav}schedule-tag","{urn:ietf:params:xml:ns:caldav}calendar-data"],"hrefs":["/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c03c8189a01eb0d0834d0259178ca8a.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c1424797a1c8c9bd44ab1278d2fa7f6.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c1f72d19d52a3779f651c19e511f957.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c408515a9dc8174c6810875eee835db.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c769641e1ad0ad4aa48bd6c1809c3a1.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c9946af973614db484beebbefabceed.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0cd2bfd82c71de252c42c8f479425831.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0cf9a8a8288f49ea9145f0c68aecdbf1.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0cfb244d56ec71bc22ad743687c85eb9.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0d42a1d2f1e042122db767f84b143902.ics"],"expand":"*** sensitive parameters replaced ***","contentType":"text/calendar","version":"2.0"}]},{"file":"/www/htdocs/w019aa97/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"report","class":"Sabre\\CalDAV\\Plugin","type":"->","args":["{urn:ietf:params:xml:ns:caldav}calendar-multiget",{"__class__":"Sabre\\CalDAV\\Xml\\Request\\CalendarMultiGetReport","properties":["{DAV:}getcontenttype","{DAV:}getetag","{urn:ietf:params:xml:ns:caldav}schedule-tag","{urn:ietf:params:xml:ns:caldav}calendar-data"],"hrefs":["/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c03c8189a01eb0d0834d0259178ca8a.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c1424797a1c8c9bd44ab1278d2fa7f6.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c1f72d19d52a3779f651c19e511f957.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c408515a9dc8174c6810875eee835db.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c769641e1ad0ad4aa48bd6c1809c3a1.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c9946af973614db484beebbefabceed.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0cd2bfd82c71de252c42c8f479425831.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0cf9a8a8288f49ea9145f0c68aecdbf1.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0cfb244d56ec71bc22ad743687c85eb9.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0d42a1d2f1e042122db767f84b143902.ics"],"expand":"*** sensitive parameters replaced ***","contentType":"text/calendar","version":"2.0"},"calendars/user2/mobilesyncthomas_shared_by_user1"]},{"file":"/www/htdocs/w019aa97/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php","line":690,"function":"emit","class":"Sabre\\DAV\\Server","type":"->","args":["report",["{urn:ietf:params:xml:ns:caldav}calendar-multiget",{"__class__":"Sabre\\CalDAV\\Xml\\Request\\CalendarMultiGetReport","properties":["{DAV:}getcontenttype","{DAV:}getetag","{urn:ietf:params:xml:ns:caldav}schedule-tag","{urn:ietf:params:xml:ns:caldav}calendar-data"],"hrefs":["/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c03c8189a01eb0d0834d0259178ca8a.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c1424797a1c8c9bd44ab1278d2fa7f6.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c1f72d19d52a3779f651c19e511f957.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c408515a9dc8174c6810875eee835db.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c769641e1ad0ad4aa48bd6c1809c3a1.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0c9946af973614db484beebbefabceed.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0cd2bfd82c71de252c42c8f479425831.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0cf9a8a8288f49ea9145f0c68aecdbf1.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0cfb244d56ec71bc22ad743687c85eb9.ics","/remote.php/dav/calendars/user2/mobilesyncthomas_shared_by_user1/owncloud-0d42a1d2f1e042122db767f84b143902.ics"],"expand":"*** sensitive parameters replaced ***","contentType":"text/calendar","version":"2.0"},"calendars/user2/mobilesyncthomas_shared_by_user1"]]},{"file":"/www/htdocs/w019aa97/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"httpReport","class":"Sabre\\DAV\\CorePlugin","type":"->","args":[{"__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]},{"file":"/www/htdocs/w019aa97/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":472,"function":"emit","class":"Sabre\\DAV\\Server","type":"->","args":["method:REPORT",[{"__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]]},{"file":"/www/htdocs/w019aa97/nextcloud/apps/dav/lib/Connector/Sabre/Server.php","line":61,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->","args":[{"__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]},{"file":"/www/htdocs/w019aa97/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":321,"function":"start","class":"OCA\\DAV\\Connector\\Sabre\\Server","type":"->","args":[]},{"file":"/www/htdocs/w019aa97/nextcloud/apps/dav/lib/Server.php","line":393,"function":"exec","class":"Sabre\\DAV\\Server","type":"->","args":[]},{"file":"/www/htdocs/w019aa97/nextcloud/apps/dav/appinfo/v2/remote.php","line":35,"function":"exec","class":"OCA\\DAV\\Server","type":"->","args":[]},{"file":"/www/htdocs/w019aa97/nextcloud/remote.php","line":172,"args":["/www/htdocs/w019aa97/nextcloud/apps/dav/appinfo/v2/remote.php"],"function":"require_once"}],"File":"/www/htdocs/w019aa97/nextcloud/3rdparty/sabre/vobject/lib/Document.php","Line":216,"message":"Unsupported VALUE parameter for DTEND property. You supplied \"\"","exception":[],"CustomMessage":"Unsupported VALUE parameter for DTEND property. You supplied \"\""},"id":"67d34cb0eb343"}

Additional info

ICS data sample of one of the errors shown above.

BEGIN:VCALENDAR
VERSION:2.0
PRODID:ownCloud Calendar 0.6.1
BEGIN:VEVENT
STATUS:TENTATIVE
TRANSP:OPAQUE
DTEND;VALUE=DATE-TIME:20090628T200000Z
DTSTART:20090628T130000Z
UID:1f6b1319-7f5d-4930-a107-4738ac28307f
SUMMARY:Sgs pieschen emmers
END:VEVENT
END:VCALENDAR

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    Status

    Triaged

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions