Skip to content

[Bug] NC 25 : MOVE via caldav does not get propagated to connected clients #34162

@BernieO

Description

@BernieO

⚠️ This issue respects the following points: ⚠️

  • This is a bug, not a question or a configuration/webserver/proxy issue.
  • This issue is not already reported on Github (I've searched it).
  • Nextcloud Server is up to date. See Maintenance and Release Schedule for supported versions.
  • Nextcloud Server is running on 64bit capable CPU, PHP and OS.
  • I agree to follow Nextcloud's Code of Conduct.

Bug description

Actually I am running a 32bit OS - but I don't think this has anything to do with the bug.
EDIT (02.10.2022): bug confirmed on a 64bit OS

Additionaly I must admit that I am not 100% sure whether this is a Nextcloud bug or rather a Bug in iOS 15.7 (and earlier?).
The bug doesn't exist in Nextcloud 23.0.9 (see second post in this issue) - thus I am quite sure that this is a bug of Nextcloud >= 24.0.0 24.0.5 (and maybe also earlier versions of Nextcloud 24).
EDIT (01.10.2022): Also Nextcloud 25.0.0 RC2 is affected
EDIT (02.10.2022): the bug already exists in NC 24.0.0

iOS 15.7
Nextcloud 24.0.5 (EDIT 02.10.2022: also Nextcloud 24.0.0)
EDIT (01.10.2022): I replayed this also with 25.0.0 RC2 - exactly the same Bug (webserver logs are basically the same).
The logs are from a testing instance with a SQLite3 database. The behavior is the same with MariaDB.

Bug description:
Moving an event from one calendar to another calendar on one client doesn't get propagated correctly to other iOS clients. Instead a secondary event is created on other iOS clients. See picture below:

IMG_5770

Steps to reproduce

  1. Create an event on client-1
  2. let client-2 sync
  3. move event from one calender to another calendar on client-1
  4. let client-2 sync
  5. the move of the event somehow does not get through to client-2. Instead the event is displayed twice on client-2 (once in each calendar).
  6. Trying to move the event from the original calendar on client-2 returns a 404 (because the event was already moved to another calender from client-1)

The behaviour is the same, if client-1 is Nextclouds calendar app.
EDIT (02.10.2022): as @heaterC points out the behaviour is a bit different (though with a similar unwanted result) when using the nextcloud calendar app: moving an event from one calendar to another in the Nextcloud calendar app does not lead to any change within the client calendars at all.

Expected behavior

Client-2 should also make the move of the event and not display it twice.

Installation method

Community Manual installation with Archive

Operating system

Debian/Ubuntu

PHP engine version

PHP 7.4

Web server

Nginx

Database engine version

SQlite

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

Updated from 23.0.8 to 24.0.5

Are you using the Nextcloud Server Encryption module?

Encryption is Disabled

What user-backends are you using?

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

Configuration report

{
    "system": {
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "localhost",
            "domain.example.com"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "overwrite.cli.url": "https:\/\/domain.example.com",
        "dbtype": "sqlite3",
        "version": "24.0.5.1",
        "logtimezone": "Europe\/Berlin",
        "installed": true,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "maintenance": false,
        "loglevel": 2,
        "data-fingerprint": "***REMOVED SENSITIVE VALUE***",
        "default_phone_region": "DE",
        "log_rotate_size": 524288,
        "memcache.local": "\\OC\\Memcache\\APCu",
        "activity_expire_days": 7,
        "trashbin_retention_obligation": "auto, 7",
        "versions_retention_obligation": "auto, 7"
    }
}

List of activated Apps

Enabled:
  - accessibility: 1.10.0
  - activity: 2.16.0
  - admin_audit: 1.14.0
  - calendar: 3.5.0
  - circles: 24.0.1
  - cloud_federation_api: 1.7.0
  - comments: 1.14.0
  - contacts: 4.2.1
  - contactsinteraction: 1.5.0
  - dashboard: 7.4.0
  - dav: 1.22.0
  - federatedfilesharing: 1.14.0
  - federation: 1.14.0
  - files: 1.19.0
  - files_pdfviewer: 2.5.0
  - files_rightclick: 1.3.0
  - files_sharing: 1.16.2
  - files_trashbin: 1.14.0
  - files_versions: 1.17.0
  - files_videoplayer: 1.13.0
  - firstrunwizard: 2.13.0
  - logreader: 2.9.0
  - lookup_server_connector: 1.12.0
  - nextcloud_announcements: 1.13.0
  - notifications: 2.12.1
  - oauth2: 1.12.0
  - password_policy: 1.14.0
  - photos: 1.6.0
  - privacy: 1.8.0
  - provisioning_api: 1.14.0
  - recommendations: 1.3.0
  - serverinfo: 1.14.0
  - settings: 1.6.0
  - sharebymail: 1.14.0
  - support: 1.7.0
  - survey_client: 1.12.0
  - systemtags: 1.14.0
  - tasks: 0.14.4
  - text: 3.5.1
  - theming: 1.15.0
  - twofactor_backupcodes: 1.13.0
  - updatenotification: 1.14.0
  - user_status: 1.4.0
  - viewer: 1.8.0
  - weather_status: 1.4.0
  - workflowengine: 2.6.0
Disabled:
  - encryption
  - files_external
  - user_ldap

Nextcloud Signing status

No errors have been found.

Nextcloud Logs

This is the last log entry. Nothing was logged, when creating the example (see nginx log below).

{"reqId":"0PDzkZ37f33d7Xoo75fm","level":2,"time":"2022-09-20T09:36:07+02:00","remoteAddr":"","user":"--","app":"OC\\Log\\Rotate","method":"","url":"--","message":"Log file \"/usr/share/nginx/sqlite.webroot.de/data/nextcloud.log\" was over 524288 bytes, moved to \"/usr/share/nginx/sqlite.webroot.de/data/nextcloud.log.1\"","userAgent":"--","version":"24.0.5.1","data":{"app":"OC\\Log\\Rotate"}}

Additional info

Webserver log:

CLIENT_1: create event in calendar_ONE:    
1.1.1.111 - - [20/Sep/2022:12:50:10 +0200] "REPORT /remote.php/dav/principals/users/NAME/ HTTP/2.0" 207 553 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.111 - - [20/Sep/2022:12:50:10 +0200] "PROPFIND /remote.php/dav/calendars/NAME/ HTTP/2.0" 207 1269 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.111 - - [20/Sep/2022:12:50:11 +0200] "PUT /remote.php/dav/calendars/NAME/calendar_ONE/4F684ADD-07AB-45F0-A9B4-7CD4F258328E.ics HTTP/2.0" 201 0 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.111 - - [20/Sep/2022:12:50:11 +0200] "REPORT /remote.php/dav/calendars/NAME/calendar_ONE/ HTTP/2.0" 207 697 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.111 - - [20/Sep/2022:12:50:11 +0200] "PROPFIND /remote.php/dav/calendars/NAME/inbox/ HTTP/2.0" 207 250 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.111 - - [20/Sep/2022:12:50:12 +0200] "PROPFIND /remote.php/dav/calendars/NAME/inbox/ HTTP/2.0" 207 250 "-" "iOS/15.7 (19H12) dataaccessd/1.0"


CLIENT_2: sync:
1.1.1.222 - - [20/Sep/2022:12:50:31 +0200] "REPORT /remote.php/dav/principals/users/NAME/ HTTP/2.0" 207 553 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.222 - - [20/Sep/2022:12:50:31 +0200] "PROPFIND /remote.php/dav/calendars/NAME/ HTTP/2.0" 207 1274 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.222 - - [20/Sep/2022:12:50:32 +0200] "REPORT /remote.php/dav/calendars/NAME/calendar_ONE/ HTTP/2.0" 207 697 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.222 - - [20/Sep/2022:12:50:32 +0200] "REPORT /remote.php/dav/calendars/NAME/calendar_ONE/ HTTP/2.0" 207 1403 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.222 - - [20/Sep/2022:12:50:32 +0200] "PROPFIND /remote.php/dav/calendars/NAME/inbox/ HTTP/2.0" 207 250 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.222 - - [20/Sep/2022:12:50:32 +0200] "PROPFIND /remote.php/dav/calendars/NAME/inbox/ HTTP/2.0" 207 250 "-" "iOS/15.7 (19H12) dataaccessd/1.0"


CLIENT_1: move event from calendar_ONE to calendar_TWO:
1.1.1.111 - - [20/Sep/2022:12:51:19 +0200] "REPORT /remote.php/dav/principals/users/NAME/ HTTP/2.0" 207 553 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.111 - - [20/Sep/2022:12:51:19 +0200] "PROPFIND /remote.php/dav/calendars/NAME/ HTTP/2.0" 207 1274 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.111 - - [20/Sep/2022:12:51:20 +0200] "MOVE /remote.php/dav/calendars/NAME/calendar_ONE/4F684ADD-07AB-45F0-A9B4-7CD4F258328E.ics HTTP/2.0" 201 0 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.111 - - [20/Sep/2022:12:51:20 +0200] "PUT /remote.php/dav/calendars/NAME/calendar_TWO/4F684ADD-07AB-45F0-A9B4-7CD4F258328E.ics HTTP/2.0" 204 0 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.111 - - [20/Sep/2022:12:51:21 +0200] "REPORT /remote.php/dav/calendars/NAME/calendar_TWO/ HTTP/2.0" 207 696 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.111 - - [20/Sep/2022:12:51:21 +0200] "PROPFIND /remote.php/dav/calendars/NAME/inbox/ HTTP/2.0" 207 250 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.111 - - [20/Sep/2022:12:51:21 +0200] "PROPFIND /remote.php/dav/calendars/NAME/inbox/ HTTP/2.0" 207 250 "-" "iOS/15.7 (19H12) dataaccessd/1.0"


CLIENT_2: sync:
1.1.1.222 - - [20/Sep/2022:12:51:44 +0200] "REPORT /remote.php/dav/principals/users/NAME/ HTTP/2.0" 207 553 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.222 - - [20/Sep/2022:12:51:44 +0200] "PROPFIND /remote.php/dav/calendars/NAME/ HTTP/2.0" 207 1274 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.222 - - [20/Sep/2022:12:51:45 +0200] "REPORT /remote.php/dav/calendars/NAME/calendar_TWO/ HTTP/2.0" 207 696 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.222 - - [20/Sep/2022:12:51:45 +0200] "REPORT /remote.php/dav/calendars/NAME/calendar_ONE/ HTTP/2.0" 207 311 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.222 - - [20/Sep/2022:12:51:45 +0200] "REPORT /remote.php/dav/calendars/NAME/calendar_TWO/ HTTP/2.0" 207 1402 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.222 - - [20/Sep/2022:12:51:45 +0200] "PROPFIND /remote.php/dav/calendars/NAME/inbox/ HTTP/2.0" 207 250 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.222 - - [20/Sep/2022:12:51:45 +0200] "PROPFIND /remote.php/dav/calendars/NAME/inbox/ HTTP/2.0" 207 250 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
--> on CLIENT_2 the event does not get moved from calendar_ONE to calendar_TWO.
    Instead a copy of the event appears in calendar_TWO (on CLIENT_2).


CLIENT_2: move event from calendar_ONE to calendar_THREE:
1.1.1.222 - - [20/Sep/2022:12:55:27 +0200] "REPORT /remote.php/dav/principals/users/NAME/ HTTP/2.0" 207 553 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.222 - - [20/Sep/2022:12:55:27 +0200] "PROPFIND /remote.php/dav/calendars/NAME/ HTTP/2.0" 207 1274 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.222 - - [20/Sep/2022:12:55:27 +0200] "MOVE /remote.php/dav/calendars/NAME/calendar_ONE/4F684ADD-07AB-45F0-A9B4-7CD4F258328E.ics HTTP/2.0" 404 176 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.222 - - [20/Sep/2022:12:55:27 +0200] "PUT /remote.php/dav/calendars/NAME/calendar_THREE/4F684ADD-07AB-45F0-A9B4-7CD4F258328E.ics HTTP/2.0" 412 297 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.222 - - [20/Sep/2022:12:55:28 +0200] "REPORT /remote.php/dav/calendars/NAME/calendar_THREE/ HTTP/2.0" 207 311 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.222 - - [20/Sep/2022:12:55:28 +0200] "PROPFIND /remote.php/dav/calendars/NAME/calendar_THREE/ HTTP/2.0" 207 284 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.222 - - [20/Sep/2022:12:55:28 +0200] "PROPFIND /remote.php/dav/calendars/NAME/calendar_THREE/ HTTP/2.0" 207 389 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.222 - - [20/Sep/2022:12:55:28 +0200] "PROPFIND /remote.php/dav/calendars/NAME/inbox/ HTTP/2.0" 207 250 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
1.1.1.222 - - [20/Sep/2022:12:55:29 +0200] "PROPFIND /remote.php/dav/calendars/NAME/inbox/ HTTP/2.0" 207 250 "-" "iOS/15.7 (19H12) dataaccessd/1.0"
--> trying to move the event from calendar_ONE to a third calendar on CLIENT_TWO leads to a 404,
    because the event doesn't exist anymore in calendar_ONE on the server.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions