nextcloud / nextcloud/server

[Bug]: NotImplementedException is thrown when I try to access calDav Calendars

Open
#49,959 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. Needs triage 30-feedback bug feature: caldav
Dominant language
PHP
Stars
36.9k
Forks
5.2k
Avg merge
2d 3h
Merged PRs (30d)
713

Description

⚠️ This issue respects the following points: ⚠️
Bug description

After updating to either 29 or 30, I can't sync calendars with new devices. In Dav5X I can connect to the server and the contact tab is populated, but the calendars stay empty (see the attached log).

When I try to query the calendars via curl, the initial list work, but querying calendar items leads to the NotImplemented error (see curl.txt)

The .well-known addresses for cal and carddav (e.g. https://cloud.domain.de/.well-known/caldav) are redirected to https://cloud.domain.de/remote.php/dav/

My traefik config for calDav, which has worked for years:

  - traefik.http.middlewares.nextcloud_redirect.redirectregex.permanent=true
  - traefik.http.middlewares.nextcloud_redirect.redirectregex.regex=/.well-known/(card|cal)dav
  - traefik.http.middlewares.nextcloud_redirect.redirectregex.replacement=/remote.php/dav/

But I also tried:

  - traefik.http.middlewares.nextcloud_redirectregex.redirectregex.permanent=true
  - traefik.http.middlewares.nextcloud_redirectregex.redirectregex.regex='https://(.*)/.well-known/(?:card|cal)dav/'
  - traefik.http.middlewares.nextcloud_redirectregex.redirectregex.replacement='https://$${1}/remote.php/dav/'
Steps to reproduce
  1. Updating to v29 or 30 I guess
Expected behavior

Calendars can be synced with new clients

Nextcloud Server version

30

Operating system

Debian/Ubuntu

PHP engine version

8.3

Web server

NginX (Behind Traefik3)

Database engine version

Postgres

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

Upgraded to a Major version (ex 28 to 29)

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": {
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "theme": "",
        "apps_paths": [
            {
                "path": "\/nextcloud\/apps",
                "url": "\/apps",
                "writable": false
            },
            {
                "path": "\/nextcloud\/apps2",
                "url": "\/apps2",
                "writable": true
            }
        ],
        "memcache.distributed": "\\OC\\Memcache\\Redis",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "memcache.local": "\\OC\\Memcache\\APCu",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "port": 6379
        },
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "localhost",
            "cloud.domain.de"
        ],
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "onlyoffice": {
            "jwt_secret": "***REMOVED SENSITIVE VALUE***",
            "jwt_header": "Authorization"
        },
        "maintenance_window_start": 1,
        "overwrite.cli.url": "https:\/\/cloud.maggiwuerze.de",
        "overwriteprotocol": "https",
        "dbtype": "pgsql",
        "version": "30.0.4.1",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "logtimezone": "Etc\/UTC",
        "logdateformat": "Y-m-d H:i:s",
        "maintenance": false,
        "updater.release.channel": "stable",
        "mail_smtpmode": "smtp",
        "mail_smtpauthtype": "LOGIN",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpauth": 1,
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "465",
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpsecure": "ssl",
        "loglevel": 0,
        "trashbin_retention_obligation": "auto, 30",
        "mail_sendmailmode": "smtp",
        "default_phone_region": "DE"
    }
}

List of activated Apps
  - app_api: 4.0.3
  - calendar: 5.0.8
  - circles: 30.0.0
  - cloud_federation_api: 1.13.0
  - comments: 1.20.1
  - contactsinteraction: 1.11.0
  - dav: 1.31.1
  - dav_push: 0.0.1
  - drawio: 3.0.3
  - federatedfilesharing: 1.20.0
  - federation: 1.20.0
  - files: 2.2.0
  - files_3dmodelviewer: 0.0.14
  - files_downloadlimit: 3.0.0
  - files_external: 1.22.0
  - files_pdfviewer: 3.0.0
  - files_reminders: 1.3.0
  - files_sharing: 1.22.0
  - files_trashbin: 1.20.1
  - files_versions: 1.23.0
  - forms: 4.3.4
  - logreader: 3.0.0
  - lookup_server_connector: 1.18.0
  - nextcloud_announcements: 2.0.0
  - notifications: 3.0.0
  - oauth2: 1.18.1
  - onlyoffice: 9.5.0
  - password_policy: 2.0.0
  - privacy: 2.0.0
  - provisioning_api: 1.20.0
  - recommendations: 3.0.0
  - related_resources: 1.5.0
  - serverinfo: 2.0.0
  - settings: 1.13.0
  - sharebymail: 1.20.0
  - support: 2.0.0
  - survey_client: 2.0.0
  - systemtags: 1.20.0
  - tasks: 0.16.1
  - text: 4.1.0
  - theming: 2.5.0
  - twofactor_backupcodes: 1.19.0
  - twofactor_totp: 12.0.0-dev
  - updatenotification: 1.20.0
  - viewer: 3.0.0
  - webhook_listeners: 1.1.0-dev
  - workflowengine: 2.12.0
Disabled:
  - activity: 3.0.0 (installed 2.21.1)
  - admin_audit: 1.20.0
  - analytics: 5.2.0 (installed 5.2.0)
  - audioplayer: 3.4.1 (installed 3.4.1)
  - breezedark: 29.0.0 (installed 29.0.0)
  - bruteforcesettings: 3.0.0 (installed 2.2.0)
  - dashboard: 7.10.0 (installed 7.0.0)
  - encryption: 2.18.0
  - extract: 1.3.6 (installed 1.3.6)
  - files_3d: 0.5.0 (installed 0.5.0)
  - files_clipboard: 0.7.1 (installed 0.7.1)
  - files_rightclick: 0.15.1 (installed 1.6.0)
  - firstrunwizard: 3.0.0 (installed 2.1)
  - flowupload: 1.1.3 (installed 1.1.3)
  - google_synchronization: 3.0.0 (installed 3.0.0)
  - mail: 4.1.0 (installed 4.1.0)
  - metadata: 0.21.0 (installed 0.21.0)
  - news: 25.1.1 (installed 25.1.1)
  - notes: 4.11.0 (installed 4.11.0)
  - photos: 3.0.2 (installed 2.5.0)
  - richdocuments: 8.5.3 (installed 8.5.3)
  - richdocumentscode: 24.4.1002 (installed 24.4.1002)
  - spreed: 20.1.1 (installed 20.1.1)
  - suspicious_login: 8.0.0
  - twofactor_nextcloud_notification: 4.0.0
  - unsplash: 3.0.3 (installed 3.0.3)
  - user_ldap: 1.21.0
  - user_status: 1.10.0 (installed 1.0.1)
  - weather_status: 1.10.0 (installed 1.0.0)

Nextcloud Signing status

Nextcloud Logs
Exception thrown: Sabre\DAV\Exception\NotImplemented 

ArgumentCountError next() expects exactly 1 argument, 0 given

StackTrace from the NotImplementedException:

see stack.txt

Additional info

curl.txt
davx5-log.txt
stack.txt

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing stack.txt alongside curl.txt and davx5-log.txt, then reproduce the failing calendar-item request against /remote.php/dav. Trace the Sabre\DAV\Exception\NotImplemented and ArgumentCountError shown in the logs. Done means calendar item queries complete successfully and new clients can synchronize calendars.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
api, backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.