Skip to content

Shared calendar: links from mail or notifications to events broken #5293

Description

@AmatorPhasma

Steps to reproduce

  1. login as administrator

  2. go to calendar app

  3. create a new calendar

  4. share the calendar with a user

  5. create a event

  6. login as the user

  7. click on notification link in the nextcloud OR from a mail

Expected behavior

open the event in the sidebar
nc_001

Actual behaviour

not loading the event in the sidebar and an uncaught error in the console.
nc_002

Calendar app version

4.3.4

CalDAV-clients used

No response

Browser

Firefox 114, GoogleChrome 114.0.5735.110, Edge 14.0.1823.41

Client operating system

Windows, Linux

Server operating system

Debian 11

Web server

Nginx

Database engine version

MariaDB

PHP engine version

PHP 8.2

Nextcloud version

26.0.2

Updated from an older installed version or fresh install

Fresh install

List of activated apps

Enabled:
  - activity: 2.18.0
  - admin_audit: 1.16.0
  - calendar: 4.3.4
  - circles: 26.0.0
  - cloud_federation_api: 1.9.0
  - comments: 1.16.0
  - contactsinteraction: 1.7.0
  - dashboard: 7.6.0
  - dav: 1.25.0
  - federatedfilesharing: 1.16.0
  - federation: 1.16.0
  - files: 1.21.1
  - files_pdfviewer: 2.7.0
  - files_rightclick: 1.5.0
  - files_sharing: 1.18.0
  - files_trashbin: 1.16.0
  - files_versions: 1.19.1
  - logreader: 2.11.0
  - lookup_server_connector: 1.14.0
  - nextcloud_announcements: 1.15.0
  - notifications: 2.14.0
  - oauth2: 1.14.0
  - password_policy: 1.16.0
  - photos: 2.2.0
  - privacy: 1.10.0
  - provisioning_api: 1.16.0
  - recommendations: 1.5.0
  - related_resources: 1.1.0-alpha1
  - serverinfo: 1.16.0
  - settings: 1.8.0
  - sharebymail: 1.16.0
  - support: 1.9.0
  - systemtags: 1.16.0
  - text: 3.7.2
  - theming: 2.1.1
  - twofactor_backupcodes: 1.15.0
  - updatenotification: 1.16.0
  - user_status: 1.6.0
  - viewer: 1.10.0
  - weather_status: 1.6.0
  - workflowengine: 2.8.0
Disabled:
  - bruteforcesettings: 2.6.0
  - encryption: 2.14.0
  - files_external: 1.18.0
  - firstrunwizard: 2.15.0 (installed 2.15.0)
  - survey_client: 1.14.0 (installed 1.14.0)
  - suspicious_login: 4.4.0
  - twofactor_totp: 8.0.0
  - user_ldap: 1.16.0

Nextcloud configuration

{
    "system": {
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "testcloud.***.**"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "26.0.2.1",
        "overwrite.cli.url": "https:\/\/testcloud.***.**",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "default_phone_region": "DE",
        "memcache.local": "\\OC\\Memcache\\APCu",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "port": 0,
            "timeout": 0.5,
            "dbindex": 1
        }
    }
}

Web server error log

***.***.***.*** - - [07/Jun/2023:10:51:15 +0200] "GET /ocs/v2.php/apps/notifications/api/v2/notifications HTTP/2.0" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
***.***.***.*** - - [07/Jun/2023:10:51:18 +0200] "GET /apps/calendar/dayGridMonth/now/edit/sidebar/L3JlbW90ZS5waHAvZGF2L2NhbGVuZGFycy9BZG1pbmlzdHJhdG9yL2FsbGdlbWVpbi9GNTdBRjE5Ny0xNERDLTQ0RjktOTExQS1FREU2Mjc4QzMyRkEuaWNz/next HTTP/2.0" 200 9704 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
***.***.***.*** - - [07/Jun/2023:10:51:18 +0200] "POST /apps/text/session/sync HTTP/2.0" 200 309 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
***.***.***.*** - - [07/Jun/2023:10:51:19 +0200] "GET /ocs/v2.php/search/providers?from=%2Fapps%2Fcalendar%2FdayGridMonth%2Fnow%2Fedit%2Fsidebar%2FL3JlbW90ZS5waHAvZGF2L2NhbGVuZGFycy9BZG1pbmlzdHJhdG9yL2FsbGdlbWVpbi9GNTdBRjE5Ny0xNERDLTQ0RjktOTExQS1FREU2Mjc4QzMyRkEuaWNz%2Fnext HTTP/2.0" 200 223 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
***.***.***.*** - - [07/Jun/2023:10:51:19 +0200] "PROPFIND /remote.php/dav/ HTTP/2.0" 207 230 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
***.***.***.*** - - [07/Jun/2023:10:51:19 +0200] "GET /ocs/v2.php/apps/user_status/api/v1/statuses/testuser HTTP/2.0" 200 120 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
***.***.***.*** - - [07/Jun/2023:10:51:19 +0200] "PUT /ocs/v2.php/apps/user_status/api/v1/heartbeat?format=json HTTP/2.0" 200 149 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
***.***.***.*** - - [07/Jun/2023:10:51:19 +0200] "GET /cron.php HTTP/2.0" 200 40 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
***.***.***.*** - - [07/Jun/2023:10:51:19 +0200] "PROPFIND /remote.php/dav/principals/users/testuser/ HTTP/2.0" 207 680 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
***.***.***.*** - - [07/Jun/2023:10:51:19 +0200] "GET /ocs/v2.php/apps/notifications/api/v2/notifications HTTP/2.0" 200 572 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
***.***.***.*** - - [07/Jun/2023:10:51:19 +0200] "PROPFIND /remote.php/dav/calendars/testuser/ HTTP/2.0" 207 1591 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
***.***.***.*** - - [07/Jun/2023:10:51:19 +0200] "REPORT /remote.php/dav/calendars/testuser/personal/ HTTP/2.0" 207 239 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
***.***.***.*** - - [07/Jun/2023:10:51:19 +0200] "REPORT /remote.php/dav/calendars/testuser/allgemein_shared_by_Administrator/ HTTP/2.0" 207 3442 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
***.***.***.*** - - [07/Jun/2023:10:51:19 +0200] "PROPFIND /remote.php/dav/principals/users/Administrator/ HTTP/2.0" 207 394 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
***.***.***.*** - - [07/Jun/2023:10:51:19 +0200] "REPORT /remote.php/dav/calendars/testuser/personal/ HTTP/2.0" 207 239 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
***.***.***.*** - - [07/Jun/2023:10:51:19 +0200] "GET /ocs/v2.php/apps/user_status/api/v1/statuses/Administrator HTTP/2.0" 200 128 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
***.***.***.*** - - [07/Jun/2023:10:51:19 +0200] "REPORT /remote.php/dav/calendars/testuser/allgemein_shared_by_Administrator/ HTTP/2.0" 207 239 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"

Log file

Nothing releated

Browser log

calendars.js:1039 Uncaught (in promise) Error
    at calendars.js:1039:26
    at c (calendars.js:2:1)
    at Generator._invoke (calendars.js:2:1)
    at Generator.next (calendars.js:2:1)
    at Joe (calendars.js:2:1)
    at o (calendars.js:2:1)
    at calendars.js:2:1
    at new Promise (<anonymous>)
    at calendars.js:2:1
    at wt.getEventByObjectId (calendars.js:1023:50)
(anonym)	                                @	calendars.js:1039
c	                                        @	calendars.js:2
(anonym)	                                @	calendars.js:2
(anonym)	                                @	calendars.js:2
Joe	                                        @	calendars.js:2
o	                                        @	calendars.js:2
(anonym)	                                @	calendars.js:2
(anonym)	                                @	calendars.js:2
getEventByObjectId	                        @	calendars.js:1023
(anonym)	                                @	vuex.esm.js:851
wt.dispatch	                                @	vuex.esm.js:516
dispatch	                                @	vuex.esm.js:406
(anonym)	                                @	calendarObjectInstance.js:1478
c	                                        @	calendarObjectInstance.js:2
(anonym)	                                @	calendarObjectInstance.js:2
(anonym)	                                @	calendarObjectInstance.js:2
Noe	                                        @	calendarObjectInstance.js:2
o	                                        @	calendarObjectInstance.js:2
(anonym)	                                @	calendarObjectInstance.js:2
(anonym)	                                @	calendarObjectInstance.js:2
resolveClosestRecurrenceIdForCalendarObject	@	calendarObjectInstance.js:1477
(anonym)	                                @	vuex.esm.js:851
wt.dispatch	                                @	vuex.esm.js:516
dispatch	                                @	vuex.esm.js:406
(anonym)	                                @	EditorMixin.js:700
c	                                        @	EditorMixin.js:2
(anonym)	                                @	EditorMixin.js:2
(anonym)	                                @	EditorMixin.js:2
w9	                                        @	EditorMixin.js:2
o	                                        @	EditorMixin.js:2
Promise.then (async)		
w9	                                        @	EditorMixin.js:2
o	                                        @	EditorMixin.js:2
Promise.then (async)		
w9	                                        @	EditorMixin.js:2
o	                                        @	EditorMixin.js:2
(anonym)	                                @	EditorMixin.js:2
(anonym)	                                @	EditorMixin.js:2
(anonym)	                                @	EditorMixin.js:718
F	                                        @	vue-router.esm.js:290
o.hook.init	                                @	vue-router.esm.js:398
n	                                        @	vue.runtime.esm.js:4562
(anonym)	                                @	vue.runtime.esm.js:6567
p	                                        @	vue.runtime.esm.js:6521
m	                                        @	vue.runtime.esm.js:6640
p	                                        @	vue.runtime.esm.js:6544
Za.nodeOps	                                @	vue.runtime.esm.js:7071
e._update	                                @	vue.runtime.esm.js:3765
r	                                        @	vue.runtime.esm.js:3875
e.get	                                    	@	vue.runtime.esm.js:3446
e	                                        @	vue.runtime.esm.js:3436
e	                                        @	vue.runtime.esm.js:3892
Xn.$mount	                                @	vue.runtime.esm.js:8772
init	                                    	@	vue.runtime.esm.js:4407
(anonym)	                                @	vue.runtime.esm.js:6567
p	                                        @	vue.runtime.esm.js:6521
Za.nodeOps	                                @	vue.runtime.esm.js:7071
e._update	                                @	vue.runtime.esm.js:3765
r	                                        @	vue.runtime.esm.js:3875
e.get	                                    @	vue.runtime.esm.js:3446
e	                                        @	vue.runtime.esm.js:3436
e	                                        @	vue.runtime.esm.js:3892
Xn.$mount	                                @	vue.runtime.esm.js:8772
init	                                    @	vue.runtime.esm.js:4407
n	                                        @	vue.runtime.esm.js:4561
(anonym)	                                @	vue.runtime.esm.js:6567
p	                                        @	vue.runtime.esm.js:6521
Za.nodeOps	                                @	vue.runtime.esm.js:7071
e._update	                                @	vue.runtime.esm.js:3765
r	                                        @	vue.runtime.esm.js:3875
e.get	                                    	@	vue.runtime.esm.js:3446
e	                                        @	vue.runtime.esm.js:3436
e	                                        @	vue.runtime.esm.js:3892
Xn.$mount	                                @	vue.runtime.esm.js:8772
init	                                    	@	vue.runtime.esm.js:4407
(anonym)	                                @	vue.runtime.esm.js:6567
p	                                        @	vue.runtime.esm.js:6521
Za.nodeOps	                                @	vue.runtime.esm.js:7109
e._update	                                @	vue.runtime.esm.js:3765
r	                                        @	vue.runtime.esm.js:3875
e.get	                                    	@	vue.runtime.esm.js:3446
e	                                        @	vue.runtime.esm.js:3436
e	                                        @	vue.runtime.esm.js:3892
Xn.$mount	                                @	vue.runtime.esm.js:8772
e._init	                                    	@	vue.runtime.esm.js:5701
Xn	                                        @	vue.runtime.esm.js:5762
(anonym)	                                @	main.js:77
(anonym)	                                @	main.js:81
(anonym)	                                @	main.js:81

Additional info

It works when I use the link from the dashboard widget.

Something I noticed, even if I don't know if it's any important, some difference in the url:

The working dashboard widget link:

https://testcloud.***.***/apps/calendar/timeGridWeek/now/edit/sidebar/L3JlbW90ZS5waHAvZGF2L2NhbGVuZGFycy90ZXN0dXNlci9hbGxnZW1laW5fc2hhcmVkX2J5X0FkbWluaXN0cmF0b3IvRjU3QUYxOTctMTREQy00NEY5LTkxMUEtRURFNjI3OEMzMkZBLmljcw==/1686396600

The "broken" notification link, from app or mail:
https://testcloud.***.***/apps/calendar/dayGridMonth/now/edit/sidebar/L3JlbW90ZS5waHAvZGF2L2NhbGVuZGFycy9BZG1pbmlzdHJhdG9yL2FsbGdlbWVpbi9GNTdBRjE5Ny0xNERDLTQ0RjktOTExQS1FREU2Mjc4QzMyRkEuaWNz/next

if I replace the "cryptic" part from notification link with the one from the dashboard, it works:
https://testcloud.***.***/apps/calendar/dayGridMonth/now/edit/sidebar/L3JlbW90ZS5waHAvZGF2L2NhbGVuZGFycy90ZXN0dXNlci9hbGxnZW1laW5fc2hhcmVkX2J5X0FkbWluaXN0cmF0b3IvRjU3QUYxOTctMTREQy00NEY5LTkxMUEtRURFNjI3OEMzMkZBLmljcw/next

Metadata

Metadata

Assignees

No one assigned

    Labels

    0. to triagePending approval or rejectionbugskill:backendIssues and PRs that require backend development skills

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions