Hello John!
And thank you for spending time on this issue.
It seems to be related to the oc_cards MySQL table. I’ve recently migrated to MariaDB, maybe is this linked? Here are the facts.
When I try to display the Contacts app, I only see on the left the different groups of contacts: when clicking on one of them, or just on All the contacts, the contacts list stay empty, and the details panel says: ‘No contact selected’ (I translate from french, maybe this is not exactly the english message).
Clicking on the bottom left settings icon, there’s no addressbook, and the message: ‘Import not available because there’s no addressbook’.
I’ve had a look in the MySQL oc_addressbooks table: my user do have an addressbook with id 29.
Using the bottom left settings field, I’ve created a new addressbook: it got the id 31 and appears of course empty. I’ve dropped the previous addressbook (29).
I’ve gradually found and replaced from 29 to 31 the oc_cards.addressbookid and oc_cards_properties.addressbookid of some contacts using PhpMyAdmin: so they’ve one by one appeared in my new addressbook.
I’ve finally found some contacts in the old addressbook (29) that have reproduced the issue: with 31’ addressbookid, all the contacts groups display empty. If I set oc_cards_properties.addressbookid back to 29, the issue stays; if I also set oc_cards.addressbookid to 29, I get my 31’ contacts back.
I’m trying to compare the contacts that cause the issue with those who don’t, but I don’t manage to see the point.
I’ve reset to 31 the addressbookid fields of a contact that reproduce the issue, here is the console output:
Content Security Policy: La source dupliquée « 'unsafe-inline' » a été ignorée.
Content Security Policy: Impossible d’analyser l’hôte invalide 'unsafe-inline'
Content Security Policy: La directive « child-src » est obsolète. Veuillez utiliser la directive « worker-src » pour contrôler des workers ou la directive « frame-src » pour contrôler des images.
JQMIGRATE: Migrate is installed, version 1.4.0 core.js:7:542
@babel/polyfill is loaded more than once on this page. This is probably not desirable/intended and may have consequences if different versions of the polyfills are applied sequentially. If you do need to load the polyfill more than once, use @babel/polyfill/noConflict instead to bypass the warning. contacts.js:38:51118
New search handler registered search.js:67:4
State changed to INITIATING jsxc.min.js:1:2054
State changed to PREVCONFOUND jsxc.min.js:1:2054
check master jsxc.min.js:1:2054
Connected to dav!
Object { rootUrl: "https://nextcloud.../remote.php/dav/", advertisedFeatures: (17) […], currentUserPrincipal: {…}, principalCollections: (4) […], calendarHomes: [], addressBookHomes: (1) […], parser: {…}, _isConnected: true, _request: {…} }
contacts.js:310:29401
TypeError: "e.value is null"
sortedContacts https://nextcloud.../apps/contacts/js/contacts.js?v=1171267c-8:401:2227
sortContacts https://nextcloud.../apps/contacts/js/contacts.js?v=1171267c-8:401:2180
Dn https://nextcloud../apps/contacts/js/contacts.js?v=1171267c-8:336:4757
commit https://nextcloud.../apps/contacts/js/contacts.js?v=1171267c-8:336:5962
commit https://nextcloud.../apps/contacts/js/contacts.js?v=1171267c-8:336:5940
_withCommit https://nextcloud.../apps/contacts/js/contacts.js?v=1171267c-8:336:7223
commit https://nextcloud.../apps/contacts/js/contacts.js?v=1171267c-8:336:5912
commit https://nextcloud.../apps/contacts/js/contacts.js?v=1171267c-8:336:2587
t https://nextcloud.../apps/contacts/js/contacts.js?v=1171267c-8:380:5055
I https://nextcloud.../apps/contacts/js/contacts.js?v=1171267c-8:38:27686
I https://nextcloud.../apps/contacts/js/contacts.js?v=1171267c-8:38:27554
c https://nextcloud.../apps/contacts/js/contacts.js?v=1171267c-8:38:35413
contacts.js:380:5134
I am master. jsxc.min.js:1:2054
State changed to ESTABLISHING jsxc.min.js:1:2054
Try to attach jsxc.min.js:1:2054
SID: a4e82372681665e707a5b8e015021f832eba6963 jsxc.min.js:1:2054
ATTACHED: null jsxc.min.js:1:2054
UI State changed to INITIATING jsxc.min.js:1:2054
discover http upload service jsxc.min.js:1:2054
UI State changed to READY jsxc.min.js:1:2054
DSA key loaded jsxc.min.js:1:2054
State changed to READY jsxc.min.js:1:2054
Erreur dans les liens source : TypeError: NetworkError when attempting to fetch resource.
URL de la ressource : https://nextcloud.../apps/contacts/js/contacts.js?v=1171267c-8
URL du lien source : contacts.js.map[En savoir plus]
Erreur dans les liens source : TypeError: NetworkError when attempting to fetch resource.
URL de la ressource : https://nextcloud.../apps/ojsxc/js/jsxc/jsxc.min.js?v=1171267c-8
URL du lien source : jsxc.min.js.map[En savoir plus]
And the console output when I rule out this contact from the new addressbook:
Content Security Policy: La source dupliquée « 'unsafe-inline' » a été ignorée.
Content Security Policy: Impossible d’analyser l’hôte invalide 'unsafe-inline'
Content Security Policy: La directive « child-src » est obsolète. Veuillez utiliser la directive « worker-src » pour contrôler des workers ou la directive « frame-src » pour contrôler des images.
JQMIGRATE: Migrate is installed, version 1.4.0 core.js:7:542
@babel/polyfill is loaded more than once on this page. This is probably not desirable/intended and may have consequences if different versions of the polyfills are applied sequentially. If you do need to load the polyfill more than once, use @babel/polyfill/noConflict instead to bypass the warning. contacts.js:38:51118
New search handler registered search.js:67:4
State changed to INITIATING jsxc.min.js:1:2054
State changed to PREVCONFOUND jsxc.min.js:1:2054
check master jsxc.min.js:1:2054
Connected to dav!
Object { rootUrl: "https://nextcloud.../remote.php/dav/", advertisedFeatures: (17) […], currentUserPrincipal: {…}, principalCollections: (4) […], calendarHomes: [], addressBookHomes: (1) […], parser: {…}, _isConnected: true, _request: {…} }
contacts.js:310:29401
I am master. jsxc.min.js:1:2054
State changed to ESTABLISHING jsxc.min.js:1:2054
Try to attach jsxc.min.js:1:2054
SID: a4e82372681665e707a5b8e015021f832eba6963 jsxc.min.js:1:2054
ATTACHED: null jsxc.min.js:1:2054
UI State changed to INITIATING jsxc.min.js:1:2054
discover http upload service jsxc.min.js:1:2054
UI State changed to READY jsxc.min.js:1:2054
DSA key loaded jsxc.min.js:1:2054
State changed to READY jsxc.min.js:1:2054
Erreur dans les liens source : TypeError: NetworkError when attempting to fetch resource.
URL de la ressource : https://nextcloud.../apps/ojsxc/js/jsxc/jsxc.min.js?v=1171267c-8
URL du lien source : jsxc.min.js.map[En savoir plus]
Erreur dans les liens source : TypeError: NetworkError when attempting to fetch resource.
URL de la ressource : https://nextcloud.../apps/contacts/js/contacts.js?v=1171267c-8
URL du lien source : contacts.js.map[En savoir plus]
I’m stuck here, and available for further tests: I’d like to find what’s wrong with some contacts, to avoid moving them one by one from the old to the new addressbook…
Benoît