nextcloud / nextcloud/contacts
The default user Contacts Addressbook not shown
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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