nextcloud / nextcloud/server

[Bug]: iOS contacts can't set default *list*

Open
#39,302 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. Needs triage 27-feedback bug feature: carddav feature: contacts
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

I am using iOS 16.5.1 with CalDAV set up for my NextCloud instance. The NC instance has multiple Contact Groups. On iOS, these Contact Groups translate to lists (iOS lingo). See the following screenshot:

To avoid confusion: It is possible to set the default account in the iOS settings by navigating Settings > Contacts > Default account. However, it is not possible to set the default list / Contacts Group.

New contacts are always being added to one group, but not the main All Contacts group. Now you may ask: why open an issue in nextcloud/server? Well, I don't think iOS will magically and easily change. So I think it makes sense to first understand whether some server settings / code affect the default contact placement.

Steps to reproduce
  1. set up CalDAV sync on an iOS device
  2. create multiple contact groups in NextCloud
  3. sync
  4. create a new contact on iOS and observe that it is added in one of the Contact Groups
Expected behavior

it gets added to the All Contacts group.

Installation method

Community Docker image

Nextcloud Server version

27

Operating system

Debian/Ubuntu

PHP engine version

PHP 8.1

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?

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***",
        "tempdirectory": "\/data\/tmp",
        "supportedDatabases": [
            "sqlite",
            "mysql",
            "pgsql"
        ],
        "logtimezone": "Europe\/Berlin",
        "logdateformat": "Y-m-d H:i:s",
        "memcache.local": "\\OC\\Memcache\\APCu",
        "apps_paths": [
            {
                "path": "\/var\/www\/apps",
                "url": "\/apps",
                "writable": false
            },
            {
                "path": "\/data\/userapps",
                "url": "\/userapps",
                "writable": true
            }
        ],
        "default_locale": "de",
        "default_phone_region": "DE",
        "mail_smtpmode": "smtp",
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "cloud.patz.app"
        ],
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "27.0.0.8",
        "overwriteprotocol": "https",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_sendmailmode": "smtp",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpauthtype": "LOGIN",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "587",
        "debug": false,
        "loglevel": 2,
        "maintenance": false,
        "app_install_overwrite": [
            "occweb",
            "drawio",
            "extract",
            "gpxpod",
            "electronicsignatures",
            "files_markdown",
            "files_mindmap",
            "socialsharing_email",
            "maps"
        ],
        "theme": "",
        "allow_local_remote_servers": true,
        "overwrite.cli.url": "https:\/\/cloud.patz.app",
        "mail_smtpauth": 1,
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***"
    }
}
List of activated Apps
Enabled:
  - activity: 2.19.0
  - admin_audit: 1.17.0
  - calendar: 4.4.3
  - circles: 27.0.0
  - cloud_federation_api: 1.10.0
  - comments: 1.17.0
  - contacts: 5.3.2
  - cospend: 1.5.10
  - dav: 1.27.0
  - deck: 1.10.0
  - drawio: 2.1.1
  - electronicsignatures: 2.0.5
  - extract: 1.3.6
  - federatedfilesharing: 1.17.0
  - federation: 1.17.0
  - files: 1.22.0
  - files_accesscontrol: 1.17.0
  - files_automatedtagging: 1.17.0
  - files_markdown: 2.4.1
  - files_mindmap: 0.0.28
  - files_pdfviewer: 2.8.0
  - files_rightclick: 1.6.0
  - files_sharing: 1.19.0
  - files_trashbin: 1.17.0
  - files_versions: 1.20.0
  - files_zip: 1.4.0
  - firstrunwizard: 2.16.0
  - forms: 3.3.1
  - gpxpod: 5.0.12
  - groupfolders: 15.0.0
  - integration_google: 2.0.2
  - integration_openproject: 2.3.7
  - logreader: 2.12.0
  - lookup_server_connector: 1.15.0
  - mail: 3.2.3
  - maps: 1.1.0
  - nextcloud_announcements: 1.16.0
  - notifications: 2.15.0
  - oauth2: 1.15.0
  - onlyoffice: 8.1.0
  - password_policy: 1.17.0
  - photos: 2.3.0
  - previewgenerator: 5.3.0
  - privacy: 1.11.0
  - provisioning_api: 1.17.0
  - recommendations: 1.6.0
  - related_resources: 1.2.0
  - serverinfo: 1.17.0
  - settings: 1.9.0
  - sharebymail: 1.17.0
  - socialsharing_email: 2.6.0
  - spreed: 17.0.1
  - support: 1.10.0
  - survey_client: 1.15.0
  - suspicious_login: 5.0.0
  - systemtags: 1.17.0
  - tasks: 0.15.0
  - text: 3.8.0
  - theming: 2.2.0
  - twofactor_backupcodes: 1.16.0
  - twofactor_totp: 9.0.0
  - updatenotification: 1.17.0
  - user_oidc: 1.3.3
  - user_status: 1.7.0
  - viewer: 2.1.0
  - weather_status: 1.7.0
  - workflowengine: 2.9.0
Disabled:
  - bruteforcesettings: 2.7.0 (installed 2.4.0)
  - contactsinteraction: 1.8.0 (installed 1.7.0)
  - dashboard: 7.7.0 (installed 7.0.0)
  - encryption: 2.15.0
  - files_external: 1.19.0 (installed 1.16.1)
  - user_ldap: 1.17.0
Nextcloud Signing status
no errors have been found
Nextcloud Logs
-
Additional info

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 tracing the server-side CalDAV contacts handling for iOS contact groups and the default placement of newly created contacts. Compare the reported behavior with the expected All Contacts group, then identify the relevant server setting or code path and reproduce the case with multiple contact groups; done means new iOS contacts are placed in All Contacts as expected.

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
Quiet
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.