Skip to content

SabreDAV exception: More than one master object was found #4775

@simonspa

Description

@simonspa

Dear all,

I am having an issue with the calendar backend. One of my users has a calendar which she accesses from her phone (DAVdroid) and from her desktop (GNOME Calendar) via CalDAV. Through the Nextcloud webinterface she created an event which repeats bi-weekly. Now she reported to me, that she tried to change "something" in the event but now gets errors from DAVdroid.

Looking at the logs, I see the following:

	Sabre\DAV\Exception\UnsupportedMediaType: HTTP/1.1 415 Validation error in iCalendar: More than one master object was found for the object with UID G0N0GFM8GUJNISNY3FR5I

    /var/www/nextcloud/3rdparty/sabre/dav/lib/CalDAV/Plugin.php - line 773: Sabre\CalDAV\Plugin->validateICalendar('BEGIN VCALENDAR...', 'calendars/karin...', false, Object(Sabre\HTTP\Request), Object(Sabre\HTTP\Response), false)
    [internal function] Sabre\CalDAV\Plugin->beforeWriteContent('calendars/karin...', Object(OCA\DAV\CalDAV\CalendarObject), 'BEGIN VCALENDAR...', false)
    /var/www/nextcloud/3rdparty/sabre/event/lib/EventEmitterTrait.php - line 105: call_user_func_array(Array, Array)
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 1104: Sabre\Event\EventEmitter->emit('beforeWriteCont...', Array)
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php - line 513: Sabre\DAV\Server->updateFile('calendars/karin...', Resource id #33, NULL)
    [internal function] Sabre\DAV\CorePlugin->httpPut(Object(Sabre\HTTP\Request), Object(Sabre\HTTP\Response))
    /var/www/nextcloud/3rdparty/sabre/event/lib/EventEmitterTrait.php - line 105: call_user_func_array(Array, Array)
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 479: Sabre\Event\EventEmitter->emit('method PUT', Array)
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 254: Sabre\DAV\Server->invokeMethod(Object(Sabre\HTTP\Request), Object(Sabre\HTTP\Response))
    /var/www/nextcloud/apps/dav/lib/Server.php - line 227: Sabre\DAV\Server->exec()
    /var/www/nextcloud/apps/dav/appinfo/v2/remote.php - line 30: OCA\DAV\Server->exec()
    /var/www/nextcloud/remote.php - line 165: require_once('/var/www/nextcl...')
    {main}

I have logged in as the user and have tried to delete the offending event via the calendar app, but no success, I get the same SabreDAV exception and are unable to delete the event.

I would need some help to get rid of the offending event and would offer help to debug. :)

Steps to reproduce

(not entirely sure what created the problem, see description above)

Expected behaviour

It should be impossible to produce an invalid CalDAV entry in the first place.

Actual behaviour

Apparently malformed CalDAV item produced, now unable to delete it

Server configuration

Operating system: Raspbian

Web server: nginx

Database: MySQL

PHP version: 5.6.30

Nextcloud version: (see Nextcloud admin page) 11.0.2

Updated from an older Nextcloud/ownCloud or fresh install: Unrelated to update

Where did you install Nextcloud from: tarball

Signing status:

Signing status
No errors have been found.

List of activated apps:

App list
sudo -u www-data php occ app:list
Enabled:
  - activity: 2.4.1
  - admin_audit: 1.1.0
  - audioplayer: 1.5.1
  - bookmarks: 0.9.1
  - calendar: 1.5.2
  - comments: 1.1.0
  - contacts: 1.5.3
  - dav: 1.1.1
  - deck: 0.1.2
  - federatedfilesharing: 1.1.1
  - federation: 1.1.1
  - files: 1.6.1
  - files_external: 1.1.2
  - files_markdown: 1.0.1
  - files_pdfviewer: 1.0.1
  - files_sharing: 1.1.1
  - files_texteditor: 2.2
  - files_trashbin: 1.1.0
  - files_versions: 1.4.0
  - files_videoplayer: 1.0.0
  - firstrunwizard: 2.0
  - gallery: 16.0.0
  - logreader: 2.0.0
  - lookup_server_connector: 1.0.0
  - mail: 0.6.2
  - nextcloud_announcements: 1.0
  - notes: 2.2.0
  - notifications: 1.0.1
  - password_policy: 1.1.0
  - provisioning_api: 1.1.0
  - serverinfo: 1.1.1
  - sharebymail: 1.0.1
  - systemtags: 1.1.3
  - tasks: 0.9.5
  - templateeditor: 0.2
  - theming: 1.1.1
  - twofactor_backupcodes: 1.0.0
  - updatenotification: 1.1.1
  - workflowengine: 1.1.1
Disabled:
  - encryption
  - external
  - files_accesscontrol
  - files_automatedtagging
  - files_retention
  - spreed
  - survey_client
  - twofactor_totp
  - user_external
  - user_ldap
  - user_saml

Nextcloud configuration:

Config report
sudo -u www-data php occ config:list system
{
    "system": {
        "instanceid": "oc0e7rzi20xo",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "192.168.2.130",
            "***REMOVED***",
        ],
        "datadirectory": "\/media\/data\/ocdata",
        "overwrite.cli.url": "https:\/\/192.168.2.130\/owncloud",
        "dbtype": "mysql",
        "version": "11.0.2.7",
        "dbname": "owncloud",
        "dbhost": "localhost",
        "dbtableprefix": "oc_",
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "logtimezone": "UTC",
        "installed": true,
        "maintenance": false,
        "memcache.local": "\\OC\\Memcache\\Redis",
        "filelocking.enabled": "true",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "127.0.0.1",
            "port": 6379,
            "timeout": 0
        },
        "log_rotate_size": "100MiB",
        "theme": "",
        "loglevel": 2,
        "mail_from_address": "notifications",
        "mail_smtpmode": "smtp",
        "mail_domain": "***REMOVED***",
        "mail_smtpauthtype": "LOGIN",
        "mail_smtpauth": 1,
        "mail_smtphost": "smtp.strato.de",
        "mail_smtpport": "465",
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpsecure": "ssl",
        "htaccess.RewriteBase": "\/owncloud",
        "updater.release.channel": "stable"
    }
}

Are you using external storage, if yes which one: local

Are you using encryption: no

Are you using an external user-backend, if yes which one: no

Logs

Nextcloud log (data/nextcloud.log)

Nextcloud log
{"reqId":"pj1ViVboI2mdJ5hlcLY4","remoteAddr":"2.247.240.96","app":"webdav","message":"Exception: {\"Message\":\"HTTP\\\/1.1 415 Validation error in iCalendar: More than one master object was found for the object with UID G0N0GFM8GUJNISNY3FR5I\",\"Exception\":\"Sabre\\\\DAV\\\\Exception\\\\UnsupportedMediaType\",\"Code\":0,\"Trace\":\"#0 \\\/var\\\/www\\\/nextcloud\\\/3rdparty\\\/sabre\\\/dav\\\/lib\\\/CalDAV\\\/Plugin.php(773): Sabre\\\\CalDAV\\\\Plugin->validateICalendar('BEGIN:VCALENDAR...', 'calendars\\\/karin...', false, Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response), false)\\n#1 [internal function]: Sabre\\\\CalDAV\\\\Plugin->beforeWriteContent('calendars\\\/karin...', Object(OCA\\\\DAV\\\\CalDAV\\\\CalendarObject), 'BEGIN:VCALENDAR...', false)\\n#2 \\\/var\\\/www\\\/nextcloud\\\/3rdparty\\\/sabre\\\/event\\\/lib\\\/EventEmitterTrait.php(105): call_user_func_array(Array, Array)\\n#3 \\\/var\\\/www\\\/nextcloud\\\/3rdparty\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(1104): Sabre\\\\Event\\\\EventEmitter->emit('beforeWriteCont...', Array)\\n#4 \\\/var\\\/www\\\/nextcloud\\\/3rdparty\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/CorePlugin.php(513): Sabre\\\\DAV\\\\Server->updateFile('calendars\\\/karin...', Resource id #33, NULL)\\n#5 [internal function]: Sabre\\\\DAV\\\\CorePlugin->httpPut(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#6 \\\/var\\\/www\\\/nextcloud\\\/3rdparty\\\/sabre\\\/event\\\/lib\\\/EventEmitterTrait.php(105): call_user_func_array(Array, Array)\\n#7 \\\/var\\\/www\\\/nextcloud\\\/3rdparty\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(479): Sabre\\\\Event\\\\EventEmitter->emit('method:PUT', Array)\\n#8 \\\/var\\\/www\\\/nextcloud\\\/3rdparty\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(254): Sabre\\\\DAV\\\\Server->invokeMethod(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#9 \\\/var\\\/www\\\/nextcloud\\\/apps\\\/dav\\\/lib\\\/Server.php(227): Sabre\\\\DAV\\\\Server->exec()\\n#10 \\\/var\\\/www\\\/nextcloud\\\/apps\\\/dav\\\/appinfo\\\/v2\\\/remote.php(30): OCA\\\\DAV\\\\Server->exec()\\n#11 \\\/var\\\/www\\\/nextcloud\\\/remote.php(165): require_once('\\\/var\\\/www\\\/nextcl...')\\n#12 {main}\",\"File\":\"\\\/var\\\/www\\\/nextcloud\\\/3rdparty\\\/sabre\\\/dav\\\/lib\\\/CalDAV\\\/Plugin.php\",\"Line\":917,\"User\":\"karin\"}","level":4,"time":"2017-05-09T06:04:57+00:00","method":"PUT","url":"\/remote.php\/dav\/calendars\/karin\/praxis\/Nextcloud-OAA9N9W5TRI43J8QD6ZCD.ics","user":"karin","version":"11.0.2.7"}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions