nextcloud / nextcloud/contacts

The default user Contacts Addressbook not shown

Open
#5,141 22 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

1. to develop bug feature: contacts
Dominant language
JavaScript
Stars
642
Forks
220
Avg merge
14h 39m
Merged PRs (30d)
51

Description

Describe the bug

After editing recently imported Addresses and doing cleanup/manual merge of contacts. No addresses will be shown any more. The only clue I found is this Error in the Javascript console:

TypeError: can't access property "getAllSubcomponents", this.component is null
    _ensureCoverage ical.js:3145
    utcOffset ical.js:3041
    toString ical.js:4069
    get key contact.js:201
    get reactivity.esm-bundler.js:993
    sortedContacts contacts.js:220
    sortContacts contacts.js:220
    S8 vuex.esm-bundler.js:315
    commit vuex.esm-bundler.js:1005
    commit vuex.esm-bundler.js:1004
    _withCommit vuex.esm-bundler.js:1163
    commit vuex.esm-bundler.js:1003
    commit vuex.esm-bundler.js:940
    getContactsFromAddressBook addressbooks.js:415
    promise callback*getContactsFromAddressBook addressbooks.js:380
    N8 vuex.esm-bundler.js:322
    dispatch vuex.esm-bundler.js:1055
    dispatch vuex.esm-bundler.js:937
    fetchContacts Contacts.vue:360
    p reactivity.esm-bundler.js:905
    zt reactivity.esm-bundler.js:913
    map reactivity.esm-bundler.js:837
    fetchContacts Contacts.vue:356
    beforeMount Contacts.vue:258
    promise callback*beforeMount/< Contacts.vue:247
    promise callback*beforeMount Contacts.vue:242
    sn runtime-core.esm-bundler.js:3056
    ir runtime-core.esm-bundler.js:199
    wt runtime-core.esm-bundler.js:206
    __weh runtime-core.esm-bundler.js:3036
    On shared.esm-bundler.js:85
    H runtime-core.esm-bundler.js:5998
    run reactivity.esm-bundler.js:237
    z runtime-core.esm-bundler.js:6179
    ce runtime-core.esm-bundler.js:5953
    ee runtime-core.esm-bundler.js:5905
    g runtime-core.esm-bundler.js:5403
    H runtime-core.esm-bundler.js:6131
    run reactivity.esm-bundler.js:237
    runIfDirty reactivity.esm-bundler.js:275
    ir runtime-core.esm-bundler.js:199
    Hl runtime-core.esm-bundler.js:408
    promise callback*jl runtime-core.esm-bundler.js:322
    Mr runtime-core.esm-bundler.js:336
    Iu runtime-core.esm-bundler.js:7454
    scheduler runtime-core.esm-bundler.js:884
    scheduler reactivity.esm-bundler.js:1900
    trigger reactivity.esm-bundler.js:265
    Vi reactivity.esm-bundler.js:323
    notify reactivity.esm-bundler.js:614
    trigger reactivity.esm-bundler.js:588
    set value reactivity.esm-bundler.js:1508
    H vue-router.mjs:1388
    w vue-router.mjs:1316
    promise callback*w vue-router.mjs:1304
    N vue-router.mjs:1257
    install vue-router.mjs:1504
    use runtime-core.esm-bundler.js:4103
    <anonymous> main.js:36
addressbooks.js:424:13
    getContactsFromAddressBook addressbooks.js:424
    (Async: promise callback)
    getContactsFromAddressBook addressbooks.js:419
    N8 vuex.esm-bundler.js:322
    dispatch vuex.esm-bundler.js:1055
    dispatch vuex.esm-bundler.js:937
    fetchContacts Contacts.vue:360
    p reactivity.esm-bundler.js:905
    zt reactivity.esm-bundler.js:913
    map reactivity.esm-bundler.js:837
    fetchContacts Contacts.vue:356
    beforeMount Contacts.vue:258
    (Async: promise callback)
    beforeMount Contacts.vue:247
    (Async: promise callback)
    beforeMount Contacts.vue:242
    sn runtime-core.esm-bundler.js:3056
    ir runtime-core.esm-bundler.js:199
    wt runtime-core.esm-bundler.js:206
    __weh runtime-core.esm-bundler.js:3036
    On shared.esm-bundler.js:85
    H runtime-core.esm-bundler.js:5998
    run reactivity.esm-bundler.js:237
    z runtime-core.esm-bundler.js:6179
    ce runtime-core.esm-bundler.js:5953
    ee runtime-core.esm-bundler.js:5905
    g runtime-core.esm-bundler.js:5403
    H runtime-core.esm-bundler.js:6131
    run reactivity.esm-bundler.js:237
    runIfDirty reactivity.esm-bundler.js:275
    ir runtime-core.esm-bundler.js:199
    Hl runtime-core.esm-bundler.js:408
    (Async: promise callback)
    jl runtime-core.esm-bundler.js:322
    Mr runtime-core.esm-bundler.js:336
    Iu runtime-core.esm-bundler.js:7454
    scheduler runtime-core.esm-bundler.js:884
    scheduler reactivity.esm-bundler.js:1900
    trigger reactivity.esm-bundler.js:265
    Vi reactivity.esm-bundler.js:323
    notify reactivity.esm-bundler.js:614
    trigger reactivity.esm-bundler.js:588
    set value reactivity.esm-bundler.js:1508
    H vue-router.mjs:1388
    w vue-router.mjs:1316
    (Async: promise callback)
    w vue-router.mjs:1304
    N vue-router.mjs:1257
    install vue-router.mjs:1504
    use runtime-core.esm-bundler.js:4103
    <anonymous> main.js:36
Steps to reproduce

There is no known way to reproduce the problem. I could export my oc_cards as the data itself is still there but just not shown..

MariaDB [nextcloud]> select * from oc_addressbooks where principaluri='principals/users/reini';
+----+------------------------+-------------+----------+-------------+-----------+
| id | principaluri           | displayname | uri      | description | synctoken |
+----+------------------------+-------------+----------+-------------+-----------+
|  1 | principals/users/reini | Contacts    | contacts | NULL        |       488 |
+----+------------------------+-------------+----------+-------------+-----------+
MariaDB [nextcloud]> select addressbookid, count(id) FROM oc_cards;
+---------------+-----------+
| addressbookid | count(id) |
+---------------+-----------+
|             1 |       407 |
+---------------+-----------+
Expected behavior

Display the Addresses or at least point to the offending Address Entry...

Actual behavior

Error only logged into the Javascript console, no Message displayed and no Addressbook is shown.

Contact version

8.4.5

Operating system

Fedora 7.0.6-200.fc44.x86_64

PHP engine version

PHP 8.5.6 (cli) (built: May 5 2026 21:19:36) (NTS gcc x86_64)

Web server

Nginx

Database

MariaDB 11.8.6-MariaDB MariaDB Server

Additional info

Nextcloud Hub 26 Winter 33.0.3

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 with Contacts.vue around fetchContacts and addressbooks.js around getContactsFromAddressBook, then trace the contact.js key access and the reported ical.js failure. Use the supplied addressbook and card counts as context; done means the Contacts addressbook displays its entries or clearly identifies the offending address entry instead of failing only in the console.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, mariadb
Domain
frontend
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.