All contacts are shown
No contacts are shown, the spinning wheel does not stop.
When selecting a group, the contacts for the group are shown.
When using a differen account, contacts are shown as well.
Operating system:
Debian Jessie
Web server:
Apache 2.4.10-10+deb8u5
Database:
Postgres 9.4+165+deb8u1
PHP version:
PHP 5.6.27-0+deb8u1
Nextcloud version: (see Nextcloud admin page)
10.1
Contacts version: (see Nextcloud apps page)
1.5.1
Updated from an older Nextcloud or fresh install:
Contacts upgraded
Signing status:
No errors have been found.
List of activated apps:
Enabled:
- activity: 2.3.2
- bookmarks: 0.9.0
- calendar: 1.4.1
- comments: 1.0.0
- contacts: 1.5.1
- conversations: 0.2.3
- dashboard: 1.9.1 beta
- dav: 1.0.1
- documents: 0.13.1
- federatedfilesharing: 1.0.1
- federation: 1.0.1
- files: 1.5.2
- files_pdfviewer: 0.8.1
- files_sharing: 1.0.0
- files_texteditor: 2.1
- files_trashbin: 1.0.0
- files_versions: 1.3.0
- files_videoplayer: 0.9.8
- firstrunwizard: 1.1
- gallery: 15.0.0
- music: 0.3.12
- notifications: 0.3.0
- ocsms: 1.10.1
- ownbackup: 16.11.0
- ownnote: true
- password_policy: 1.0.0
- provisioning_api: 1.0.0
- qownnotesapi: 16.09.0
- rainloop: 4.16
- serverinfo: 1.1.1
- survey_client: 0.1.5
- systemtags: 1.0.2
- tasks: 0.9.3
- templateeditor: 0.1
- theming: 1.0.1
- updatenotification: 1.0.1
- user_ldap: 1.0.1
- workflowengine: 1.0.1
Disabled:
- admin_audit
- encryption
- external
- files_accesscontrol
- files_automatedtagging
- files_external
- files_retention
- roundcube
- user_external
- user_saml
The content of config/config.php:
{
"system": {
"dbtype": "pgsql",
"dbname": "owncloud",
"dbuser": "***REMOVED SENSITIVE VALUE***",
"dbpassword": "***REMOVED SENSITIVE VALUE***",
"dbhost": "localhost",
"dbtableprefix": "oc_",
"defaultapp": "dashboard",
"instanceid": "ocxlo1ff38g5",
"passwordsalt": "***REMOVED SENSITIVE VALUE***",
"secret": "***REMOVED SENSITIVE VALUE***",
"trusted_domains": [
"info.modserver.de",
"www.modserver.de",
"owncloud.dehnhardt.org",
"nextcloud.dehnhardt.org"
],
"datadirectory": "\/data\/cloud",
"version": "9.1.1.5",
"logtimezone": "UTC",
"installed": true,
"maintenance": false,
"theme": "",
"loglevel": 2,
"ldapIgnoreNamingRules": false,
"trashbin_retention_obligation": "auto, auto",
"updatechecker": true,
"updater.server.url": "https:\/\/updates.nextcloud.org\/updater_server\/",
"appcodechecker": false,
"htaccess.RewriteBase": "\/",
"memcache.local": "\\OC\\Memcache\\Redis",
"redis": {
"host": "localhost",
"port": 6379
},
"mail_from_address": "holger",
"mail_smtpmode": "php",
"mail_domain": "dehnhardt.org",
"updater.release.channel": "stable",
"appstore.experimental.enabled": true
}
}
Are you using external storage, if yes which one: local/smb/sftp/...
No
Are you using encryption: yes/no
No
Are you using an external user-backend, if yes which one: LDAP/ActiveDirectory/Webdav/...
+-------------------------------+--------------------------------------------+
| Configuration | |
+-------------------------------+--------------------------------------------+
| hasMemberOfFilterSupport | |
| hasPagedResultSupport | |
| homeFolderNamingRule | uid |
| lastJpegPhotoLookup | 0 |
| ldapAgentName | cn=***,dc=***,dc=org |
| ldapAgentPassword | *** |
| ldapAttributesForGroupSearch | |
| ldapAttributesForUserSearch | |
| ldapBackupHost | |
| ldapBackupPort | |
| ldapBase | dc=***,dc=org |
| ldapBaseGroups | ou=***,dc=***,dc=org |
| ldapBaseUsers | ou=***,dc=***,dc=org |
| ldapCacheTTL | 600 |
| ldapConfigurationActive | 1 |
| ldapDynamicGroupMemberURL | |
| ldapEmailAttribute | mail |
| ldapExperiencedAdmin | 0 |
| ldapExpertUUIDGroupAttr | |
| ldapExpertUUIDUserAttr | uid |
| ldapExpertUsernameAttr | uid |
| ldapGroupDisplayName | cn |
| ldapGroupFilter | (&(|(objectclass=posixGroup))) |
| ldapGroupFilterGroups | |
| ldapGroupFilterMode | 0 |
| ldapGroupFilterObjectclass | posixGroup |
| ldapGroupMemberAssocAttr | memberUid |
| ldapHost | *** |
| ldapIgnoreNamingRules | |
| ldapLoginFilter | (&(|(objectclass=posixAccount))(uid=%uid)) |
| ldapLoginFilterAttributes | |
| ldapLoginFilterEmail | 0 |
| ldapLoginFilterMode | 0 |
| ldapLoginFilterUsername | 1 |
| ldapNestedGroups | 0 |
| ldapOverrideMainServer | 0 |
| ldapPagingSize | 500 |
| ldapPort | 389 |
| ldapQuotaAttribute | |
| ldapQuotaDefault | |
| ldapTLS | 0 |
| ldapUserDisplayName | cn |
| ldapUserDisplayName2 | |
| ldapUserFilter | (|(objectclass=posixAccount)) |
| ldapUserFilterGroups | |
| ldapUserFilterMode | 0 |
| ldapUserFilterObjectclass | posixAccount |
| ldapUuidGroupAttribute | auto |
| ldapUuidUserAttribute | auto |
| turnOffCertCheck | 0 |
| useMemberOfToDetectMembership | 1 |
+-------------------------------+--------------------------------------------+
Eventually replace sensitive data as the name/IP-address of your LDAP server or groups.
Browser:
Chrome 54.0.2840.98 (64-bit)
Operating system:
Mac
CardDAV-clients:
empty error log
no owncloud errors
no errors here
Same configuration and same problem
Thanks
Fabrice
Same here, the contacts wouldn't load anything for any user.
now it's partially working on 10.0.2 but only for one user. If i try and export the contacts with any other user i get an error:
https://[nextcloud]/remote.php/dav/addressbooks/users/[user]/contacts/?export
File not found
Which nextcloud version are you using?
I'm on nextcloud 10.0.2 i repaired my installation rolling back to 1.4.0 contacts then upgraded with the nextcloud updater.
Debian Jessie
apache 2.4.10-10+deb8u7
mariadb 10.0.28-0+deb8u1
The same here! - Debian 8 + nextcloud 10.0.2 = contacts - all contacts - spinning wheel ...
Same here: Spinning wheel when accessing all contacts in the Web-GUI.
Not all users are affected, but many of them, imidiatly after updating from nextcloud 10.0.1 to 10.0.2 along with contacts-app from 1.4.0 to 1.5.1.
I tried both to update nextcloud manually or with the updater-app: same result, everthing works fine, except the contacts-app.
System: Debian 8.6,
PHP 5.6.27-0+deb8u1,
mysql 5.5.53-0+deb8u1
2.4.10-10+deb8u7
Any error in the browser console?
no errors in the browser console. nothing but "JQMIGRATE: Migrate is installed, version 1.4.0"
Is a request failing in the network tab?
Not at my side
I wish I could reproduce!
Can one of you try with a fresh install?
Yep, yesterday fresh installed. Same issue observed.
Config:
ARMBIAN Debian GNU/Linux 8 (jessie) 3.14.79-odroidc2
Nextcloud 10.0.2 (stable)
Contacts 1.5.1
Never ending spinning. The only way to get it show contacts, is to create a contact directly in the contacts app. This will show up the contact and also sync to the clients.
Creating (Importing) contacts in a client creates the DB entries, but they are never shown. Also the sync to other clients, to which the contact book is shared, does not work and they never get the contacts.
Hope this helps you to find the root cause.
As I can reproduce it, can you give me some hints where to look? The contacts app has nearly no backend logic and I'm not familar with the core.
Some js debugging: In file addressBook_service.js at line 8 addressBooks.length is always 0.
If I select a group, the same value is always 1 - no matter how many entries are returned. Which is nit what I was expecting...
The fact that all of you are on debian 8 makes me wonder... :/
What I could use is the results from the dav requests.

Click on each one of the "report" and "propfind" types and post the result please (you can copy/past the text from the "response" tab. Please watch out for sensitive info :)
Thanks all of you for your help.
Ok, here we go:
PROPFIND
addressbooks:
```
holger (me;-):
holger:
contacts:
.... some thousand additional lines... all empty except the href and status tags
again Holger:
REPORT
contacts:
VERSION:3.0
N:;[Replaced];;;
FN:[Replaced]
TEL;TYPE=WORK:030-364-16820
UID:[email protected]
REV:2015-06-17T19:27:52+00:00
PRODID:-//ownCloud//NONSGML Contacts 0.3.0.18//EN
END:VCARD
...
several additional response tags until
...
VERSION:3.0
PRODID:-//RainLoop//1.10.0.107//EN
FN:[replaced]
EMAIL:[replaced]
UID:f26242ea-c057-43be-a525-0ae201f9271b
N:;;;;
REV:20161212T193531Z
END:VCARD
```
Same problem after migration from 10.0.1 to 10.0.2 and then I tried a fresh install and import/export.
One user was affected by this.
Found out that I cannot import the entire contact list. 30 of 62 users were imported. Then I found one contact in the list thats looks very ugly:

After deleting it a new import was fine.
I looked in the card file and found, that the comma in die contact was not escaped!
FN:Name, Lastname
not FN: Name\, Lastname
There is no need for the comma at all, but the user placed it for some reason.
After escaping or removing it, the list is loading, no spinning wheel.
@dehnhardt Thanks a lot!
That is strange since it is clearly retrieving all of your contacts successfully :/
The spinning wheel is present on the contacts list only right?
Not on the addressbook list (in settings)?
Did you have contact with groups? If so does the group appear on the left?
@LeChuck77 Please open a new issue, yours isn't related to this one!
Hey,
In my case, when I open contacts spinning wheel appears, and then on the right shows message : No contacts in here. After this, on the left my contact group comes up, and now I can click on it and see the contacts. I hope this can help you with fixing this issue.
Thank you.
@skjnldsv
I do have groups. The groups are shown and as I wrote in the initial message, the contacts for the groups are shown.

Great, that's progress. So this is coming from the contactList model.
If you're using chromium, could some of you install https://chrome.google.com/webstore/detail/angularjs-batarang/ighdmehidhipcmcojjgiloacoafjmpfk?utm_source=chrome-app-launcher-info-dialog
And when selecting the div in the following screenshot, capture it and post the result here?

Look here;-)

This is really strange. It has everything processed. Contacts... all of it.
I need to think! Thanks for your help!
Good luck!
John, have you seen the different class attributes in the div. Mine has an additional mobile-show...
Hope this helps you while thinking ... :)
I deleted all my contacts (I have a backup) and created a new one using the web interface of nextcloud. This stopped the endless circle and a new contact was shown.
I created another one and assigned it to a different and shared addressbook.
For one contact I created and assigned a group "Family" and at the other one I only changed the name.
My client kmail (within contact) could sync these two contacts. What I observed, was that only the displayed name was filled, but not the name and surname. Therefore I copied the display name in the regular name field and synced back to nextcloud.
In the nextcloud I saw this at the category of the modified contact:

I'm pretty sure, that's not the way it should be.
Therefore my assumption is, that contact (app) is having problems with contacts (items) without categories.
OK, forget everything I wrote up to now.
For me I could identify, that contacts with embedded images cause the endless circle!
If I remove the image, everything shows up properly. If I ad a contact with a image then the circle comes back. Reproducible for sure. Tested it with several contacts with different fields used.
Cannot confirm pictures as cause for the endless spinning wheel.
I have next-cloud users with pictures in some of their contacts and everything works fine.
For other users it doesn't. Affected users can see several contacts in specific contact-groups, but not 'all contacts'.
@raidev: That was an interesting hint. Can you confirm, that the users with visible contact images have added the images using the webinterface (or at least the below format)?
The reason why I'm asking:
I created a contact in kmail, synced to nextcloud and checked -> OK
Added an image in kmail to the contact, synced and checked -> NOK!
Then I deleted the image in kmail, synced and checked -> OK
Added the same image in the webinterface -> OK
sync to kmail -> OK
Based on that experience I made a export (V2.1) of the contact to see the difference to my contacts causing problems. And yes the difference(s) are obviously. But I assume, that it is only related to the image part, where the encoding is set and/or the image type.
The working contact details from the vcf (sensible content replaced by '*'):
_BEGIN:VCARD
EMAIL:[email protected]
FN:Test Contact
N:Contact;Test;;;
PHOTO;ENCODING=b;TYPE=PNG:*
UID:*
VERSION:2.1
END:VCARD_
The not working contact details from the vcf (sensible content replaced by '*'):
_BEGIN:VCARD
VERSION:2.1
N:;;;;
FN:*
TEL;HOME:*
TEL;WORK:*
TEL;WORK:*
EMAIL;WORK:*
ADR;WORK:;;;;
PHOTO;ENCODING=BASE64;JPEG:*
BDAY:*
END:VCARD_
so, this in an excerpt for vcards with photos:
working User:
_PHOTO;ENCODING=B;TYPE=JPEG;VALUE=BINARY:*
PHOTO;ENCODING=B;TYPE=PNG;VALUE=BINARY:*
PHOTO;TYPE=JPEG;ENCODING=BASE64:*
PHOTO;TYPE=PNG;ENCODING=BASE64:*_
only these prodid's occur in the above contacts
_PRODID:-//dmfs.org//mimedir.vcard//EN
PRODID:-//Research In Motion//RIM App//EN_
not working User 1:
_PHOTO;TYPE=JPEG;VALUE=BINARY;ENCODING=B:*
PHOTO;ENCODING=B;TYPE=JPEG;VALUE=BINARY:*_
only this prodid occur in the above contacts
_PRODID:-//dmfs.org//mimedir.vcard//EN_
not working User 2:
_PHOTO;ENCODING=b;TYPE=JPEG;X-ABCROP-RECTANGLE=ABClipRect_...
PHOTO;TYPE=JPEG;ENCODING=B;X-ABCROP-RECTANGLE=ABClipRect_...
PHOTO;TYPE=JPEG;VALUE=BINARY;ENCODING=B:*_
only these prodid's occur in the above contacts
_PRODID:-//dmfs.org//mimedir.vcard//EN
PRODID:-//Apple Inc.//iOS ...//EN_
...hope this helps...
my user that's okay has pictures in half their contacts but my user with issues has none in any.
I just added their account to my phone with davdroid and get an error downloading the contacts.
<?xml` version="1.0" encoding="utf-8"?>[LF]
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">[LF]
<s:exception>Sabre\VObject\ParseException</s:exception>[LF]
<s:message>Invalid Mimedir file. Line starting at 9 did not follow iCalendar/vCard conventions</s:message>[LF]
</d:error>[LF]
EXCEPTION:
at.bitfire.dav4android.exception.HttpException: 500 Internal Server Error
at at.bitfire.dav4android.DavResource.checkStatus(DavResource.java:318)
at at.bitfire.dav4android.DavResource.checkStatus(DavResource.java:291)
at at.bitfire.dav4android.DavAddressBook.multiget(DavAddressBook.java:113)
at at.bitfire.davdroid.syncadapter.ContactsSyncManager.downloadRemote(ContactsSyncManager.java:326)
at at.bitfire.davdroid.syncadapter.SyncManager.performSync(SyncManager.java:170)
at at.bitfire.davdroid.syncadapter.ContactsSyncAdapterService$ContactsSyncAdapter.onPerformSync(ContactsSyncAdapterService.java:66)
at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:272)
It also seems to be specific to that contact address book; if i share to my working user it will break my contacts app in the browser until i remove it. If i had a copy of these contacts i'd just create a new one.
@dehnhardt If you create a new user, does the app works for it?
Or does it keeps spinning?
So this is a parsing issue.
I can also confirm this error in 10.0.2. I've upgraded from 10.0.1 to 10.0.2 using the updater. However, it failed to activate the "notifications" app, so I finished the upgrade with "occ" (notifications still couldn't be activated but that's probably unrelated). OS is Ubuntu 16.04.
I've reverted the upgrade (using a VM snapshot) and made sure that everything works in 10.0.1.
@skjnldsv
So this is a parsing issue.
Is this just a declarative statement or does this have any consequences for us? Should I export and import my contacts to make them work again or should I wait because you might need some more tests?
@dehnhardt I'm gonna need to test it, yes.
Export and import will fix the issue because there is an error correction on import if I recall correctly!
😄
Did one of you tried with master?
I just did it - with the same problem.
Thanks!
@raidev
If I try some of your example of non working contacts by editing the PHOTO field in database, My installation is still working.
We need to identify the part that break everything.
@dehnhardt can you find a vcf that fit this issue? Can you upload it here after editing out the sensitive data?
ok, how can I help?
@raidev export a vcf file from your database which bug every time. Then edit it so you can remove sensitive values and post it (or don't edit and sent it to my mail, I won't disclose the data here or anywhere else)
I did something different, as my "PHOTO;..." entries look completely different
I did a "grep PHOTO" on the export from the non working addressbook and the same from the working one (the fresh import into a new user) - and bot are exactly the same (see below)
So the Photos does not seem to be the problem.
Not working
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQEC
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQEC
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQEAYABgAAD//gA+Q1JFQVRPUjogZ2Qt
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2Qt
PHOTO;TYPE=JPEG;ENCODING=B:/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2Qt
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2Qt
PHOTO;TYPE=JPEG;ENCODING=b:/9j/4AAQSkZJRgABAQEAtAC0AAD/4T70RXhpZgAASUkqAAgA
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQEC
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQEC
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwME
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQEC
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQEC
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwME
PHOTO;TYPE=JPEG;ENCODING=B:/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2Qt
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2Qt
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQEC
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQEAYABgAAD//gA+Q1JFQVRPUjogZ2Qt
PHOTO;ENCODING=B;TYPE=JPEG:/9j/4AAQSkZJRgABAQEAYABgAAD//gA+Q1JFQVRPUjogZ2Qt
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQEC
working
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQEC
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQEC
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQEAYABgAAD//gA+Q1JFQVRPUjogZ2Qt
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2Qt
PHOTO;TYPE=JPEG;ENCODING=B:/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2Qt
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2Qt
PHOTO;TYPE=JPEG;ENCODING=b:/9j/4AAQSkZJRgABAQEAtAC0AAD/4T70RXhpZgAASUkqAAgA
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQEC
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQEC
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwME
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQEC
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQEC
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwME
PHOTO;TYPE=JPEG;ENCODING=B:/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2Qt
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2Qt
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQEC
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQEAYABgAAD//gA+Q1JFQVRPUjogZ2Qt
PHOTO;ENCODING=B;TYPE=JPEG:/9j/4AAQSkZJRgABAQEAYABgAAD//gA+Q1JFQVRPUjogZ2Qt
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQEC
Same here. We need to keep digging.
Is there a possibility to compare the addressbooks from the two users directly at database level, so we don't have ny influence from the epirting method?
Ok, here is what I did:
select * from oc_cards_properties as p0 where p0.addressbookid = 1 and p0.name != 'UID' and not exists
(select 1 from oc_cards_properties as p1 where p1.addressbookid = 6 and p0.value = p1.value and p0.name = p1.name);
and here are the results:
```
id | addressbookid | cardid | name | value | preferred
------+---------------+--------+-------+---------------------------+-----------
72 | 1 | 13 | NOTE | | 0
379 | 1 | 57 | FN | Some name with umlaut, von | 0
2409 | 1 | 340 | N | ;;;; | 0
2413 | 1 | 341 | N | ;;;; | 0
2441 | 1 | 348 | N | ;;;; | 0
1040 | 1 | 172 | NOTE | | 0
2417 | 1 | 342 | N | ;;;; | 0
2421 | 1 | 343 | N | ;;;; | 0
2676 | 1 | 366 | N | ;;;; | 0
2684 | 1 | 368 | N | ;;;; | 0
2692 | 1 | 370 | N | ;;;; | 0
1994 | 1 | 313 | N | ;;;; | 0
2071 | 1 | 321 | N | ;;;; | 0
2083 | 1 | 322 | N | ;;;; | 0
2087 | 1 | 323 | N | ;;;; | 0
2159 | 1 | 326 | N | ;;;; | 0
2191 | 1 | 329 | N | ;;;; | 0
2227 | 1 | 332 | N | ;;;; | 0
2231 | 1 | 333 | N | ;;;; | 0
2793 | 1 | 378 | N | ;;;; | 0
2837 | 1 | 385 | N | ;;;; | 0
2841 | 1 | 386 | N | ;;;; | 0
2845 | 1 | 387 | N | ;;;; | 0
2860 | 1 | 391 | N | ;;;; | 0
2894 | 1 | 397 | N | ;;;; | 0
2910 | 1 | 401 | N | ;;;; | 0
2926 | 1 | 405 | N | ;;;; | 0
3028 | 1 | 410 | N | ;;;; | 0
3050 | 1 | 411 | N | ;;;; | 0
@skjnldsv, not hindered by any knowledge, but isn't this issue, as you asked me earlier, perhaps related to #58?
The problem looks the same and I did provide error logs. I can't check the database anymore since I removed and imported all contacts from/to the user account that had the error, pity...
As I mentioned in #58, I had issues importing vcard 2.1 contacts in 1.5.1; app stated that they are not supported anymore. Could it be perhaps that this was not updated in the database and therefor parsing errors arise?
I guess that the contacts that are causing issues for me are the ones exported from outlook (2010) as business cards. These vcf files have extra xml sorta markup to create a business card graphically. My logs mention something about a "chatset utf8" error. Maybe that's a lead? See raw vcard that I imported in nextcloud once below:
BEGIN:VCARD
VERSION:2.1
N;LANGUAGE=en-us:"***REMOVED SENSITIVE VALUE***";"***REMOVED SENSITIVE VALUE***"
FN:"***REMOVED SENSITIVE VALUE***"
ORG:;"***REMOVED SENSITIVE VALUE***"
TEL;WORK;VOICE:"***REMOVED SENSITIVE VALUE***"
TEL;CELL;VOICE:"***REMOVED SENSITIVE VALUE***"
ADR;WORK;PREF:;"***REMOVED SENSITIVE VALUE***";"***REMOVED SENSITIVE VALUE***";"***REMOVED SENSITIVE VALUE***";;"***REMOVED SENSITIVE VALUE***";"***REMOVED SENSITIVE VALUE***"
LABEL;WORK;PREF;ENCODING=QUOTED-PRINTABLE:"***REMOVED SENSITIVE VALUE***"=0D=0A=
"***REMOVED SENSITIVE VALUE***"=0D=0A=
"***REMOVED SENSITIVE VALUE***"
X-MS-OL-DEFAULT-POSTAL-ADDRESS:2
EMAIL;PREF;INTERNET:"***REMOVED SENSITIVE VALUE***"
PHOTO;TYPE=JPEG;ENCODING=BASE64:
"***REMOVED SENSITIVE VALUE***"
X-MS-OL-DESIGN;CHARSET=utf-8:<card xmlns="http://schemas.microsoft.com/office/outlook/12/electronicbusinesscards" ver="1.0" layout="left" bgcolor="ffffff"><img xmlns="" align="tleft" area="32" use="photo"/><fld xmlns="" prop="name" align="left" dir="ltr" style="b" color="000000" size="10"/><fld xmlns="" prop="dept" align="left" dir="ltr" color="000000" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="telwork" align="left" dir="ltr" color="000000" size="8"><label align="right" color="626262">Work</label></fld><fld xmlns="" prop="telcell" align="left" dir="ltr" color="000000" size="8"><label align="right" color="626262">Mobile</label></fld><fld xmlns="" prop="email" align="left" dir="ltr" color="000000" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="addrwork" align="left" dir="ltr" color="000000" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/></card>
X-MS-MANAGER:"***REMOVED SENSITIVE VALUE***"
REV:20161028T130502Z
END:VCARD
@dehnhardt What do you mean by those tests? I'm not sure what is it to see here :p
@eggithub edit: can't reproduce with your vcard. Are you sure this is the one blocking your nextcloud setup?
@skjnldsv: as I said, I fixed by problem so i'm not sure if this is the blocking contacgt... just guessing here... sorry...
Arf, you didn't kept your original contacts? :/
Too bad, thanks for your help anyway!! 😉
@skjnldsv: I am in the situation where I have two nearly identical addressbooks. My original one (addressbookid = 1), which is not working and the one I created by export and import into a new user which is working (aadressbookid = 6). My aim is to get the difference between these two calendars - because the difference is why one ins not working and the other one is working)
In the database we have several tables with information about the contacts, two of the might be relevant to get the differences between the two calendars: oc_cards which seems to hold the complete vcf data in some encoded form (and therefore is hard to compare) and oc_cards_properties which holds parts of the information of every contact. With the statement above I identified all rows in oc_cards_properties which has differences in addressbook 1 and 7.
Okay! Nice catch!
Could you export the binary (from oc_cards) of the broken vcards which are different from your working table? Are you using phpmyadmin?
How confortable are you with database management?
No, I'm using psql. I'm not willig to send the binary to this list;-) Can you give me a pmail address?
Sure!
[email protected]
Thanks for your help, i know how frustrating that can be, especially when other can't fully reproduce your error :/
@skjnldsv: I just sent the file to you.
Holger
Answered! :)
@dehnhardt can you go into the contact app, edit contacts/js/public/script.js and search for the line "angular.isBoolean" (should be arround line 2030).
Then remove it like that:
if (angular.isNumber(valueA)) {
return !reverseOrder ? valueA - valueB : valueB - valueA;
}
Do you still have your issue?
@skjnldsv My Contacts are now showing after your fix.
Thank you!
@Friendbg this is not a fix yet. This was mor elike a test to see if this comes from the same issue.
I will work on a real fix later. :)
Thanks for your help!
It looks different here, bit I had updated to head..
And it did not fix the problem here...
arrayCopy.sort(function (a, b) {
var valueA = a[sortPredicate];
if (angular.isFunction(valueA)) {
valueA = a[sortPredicate]();
}
var valueB = b[sortPredicate];
if (angular.isFunction(valueB)) {
valueB = b[sortPredicate]();
}
if (angular.isString(valueA)) {
return !reverseOrder ? valueA.localeCompare(valueB) : valueB.localeCompare(valueA);
}
//if (angular.isNumber(valueA) || angular.isBoolean(valueA)) {
// return !reverseOrder ? valueA - valueB : valueB - valueA;
//}
return 0;
});
Please just remove the || angular.isBoolean(valueA)) part, not the full if condition 😉
Anyhow, this is a bug that need to be fixed. I'm going to publish a release and we'll see then.
😄
Sorry, I got you wrong there.
Yes, the modification made the contacts load again.
What error message did you get?
angular.isBoolean is not a function
This is because we're comparing strings here to sort your contacts, but somehow, one of the variable to compare is an array. This is happening because we're not parsing the N or FN field correctly.
Why is this error not in my logs?
grep isBoolean nextcloud.log
has no results. It could have helped a lot...
Hi,
you asked for my not-working vcf-export, so I did an anonymized version of it (removed PHOTOS and shuffled the fields 'FN:', 'EMAIL', 'N:', 'TEL:', 'ADR:'.
Then I tried to import it to a new test user-account... and everthing worked fine.
So I imported the original export file to another test user, and it also worked, hm?
So I don't know how this could help in any way, but here is my anon-version of the contacts:
out.vcf.txt
If I missed to remove some personal data please don't misuse it :)
removing angular.isBoolean(valueA)) didn't fix my user.
They were only using a one way sync as well so is there any way for me to export her contacts out so i can put them back in again?
EDIT
For anyone stuck in this situation i was able to export the matching address book
(SELECT * FROM oc_addressbooks)
This user was address book one so i exported the oc_cards database using phpmyadmin
(make sure you untick the option "Dump binary columns in hexadecimal notation (for example, "abc" becomes 0x616263)")
I edited the file to just have card data and saved as a vcf.
BEGIN:VCARD
Created a new address book and deleted the old ones.
Then i was able to import without error and cards were back
@lachlan-00 then you have a different problem. If this is an addressbook issue with dav, this comes directly from server.
Potentially related with this: https://github.com/owncloud/contacts/issues/430 right?
@skjnldsv Seems like your temporary fix goes into the right direction, although something is still missing: I removed the part || angular.isBoolean(valueA)) and now all the contacts load; the spinning wheel disappears.
But in the contact list itself, some contacts are displayed in square brackets (upper part of the screenshot), while others are displayed correctly (last two entries of the screenshot). Some info is wiped out, but the idea should be clear.
BTW: Some of my contacts do have images / photos. Seems like the photos (at least in my case) is not causing the issue that is described in some other threads. First I thought so, too, but after removing all PHOTO entries from the vcards in my database, the problem persisted. And your suggestion practically fixed it, leaving the cosmetic issue of how the contacts are displayed aside.

Yep! This confirm what I though. I will be on vacation tomorrow. I will find the time to work on this. Thanks.
Okay, the comma issue is related to #63 too.
This is coming from the vcard vendor https://github.com/Heymdall/vcard/blob/master/src/vcard.js#L79
and https://github.com/Heymdall/vcard/blob/master/src/vcard.js#L120
This is also coming from a different problem: we shouldn't have comma inside fields like that.
For example, the parsing of the following vcard will give an array instead of a string for the contact name. This is why you have all those issues. The comma inside your card isn't escaped. (see the N field)
BEGIN:VCARD
VERSION:3.0
REV:2013-02-26T19:55:10+00:00
PRODID:-//ownCloud//NONSGML Contacts 0.2.4//EN
UID:g256dg1256g1d
FN:Testam Test, von
N:Test, von;Testam;;;
END:VCARD
But the main question here is why is the comma not escaped in your vcard. What software are you using @dehnhardt ? And @sebastianklus ?
You are right, @skjnldsv . I just checked out a VCARD export from owncloud and it is the FN field, in my case.
On Windows, I am using the SoGo Connector with Thunderbird. On Android, CalDav and CardDav. And another user that is connected to my server DroidDAV. And the owncloud interface.
Checking the PRODID field that comes with most of the contacts, the SOGo Connector seems to be the common denominator. I have been using all the previous programs for several years now and until now am experiencing the problem, but if the un-escaped comma is an issue, this might be the cause. Check it out:
BEGIN:VCARD
VERSION:3.0
TEL;TYPE=CELL:+506 #### ####
X-MOZILLA-HTML:FALSE
EMAIL;TYPE=work:[email protected]
REV:2012-10-07T16:57:21+00:00
TEL;TYPE=WORK:+506 #### ####
ORG:3D Xxxxxx;
PRODID:-//Inverse inc.//SOGo Connector 1.0//EN
UID:C5631132-F590-0001-3A14-1BE016A01DD0
N:Xxxxx;Francisco;;;
FN:Xxxxx, Francisco
END:VCARD
And just today I added a contact through CardDAV and this one came in fine.
Could you try #73 please?
Bump @sebastianklus @dehnhardt @raidev @Friendbg @lachlan-00
Sorry - did not get that.
What do you refer to with #53, #73 or #77?
Sorry to bother you.
@sebastianklus no worries. I meant trying the fix on #73.
I added a tar.gz of the app for you to test easily.
Alright - give me until tonight. I do not have access to my server right now.
Cheers
Sorry, but I'm on holidays. Can try it in next week.
Great, works for me!
Good Job :)
That worked for me. Thank you!
On Thu, Dec 29, 2016 at 11:02 AM, Holger Dehnhardt <[email protected]
wrote:
Sorry, but I'm on holidays. Can try it in next week.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/nextcloud/contacts/issues/53#issuecomment-269651034,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADkY6UN4LNaMxUQ50ZULS7yqHe82opzNks5rM9mVgaJpZM4LGvIe
.
Worked for me, too.
Great - thank you!
Did not work for me. Issue #66 remains after deleting isBoolean, cannot access or delete anything through the app. I would need advice (steps) if I have to do backup/deletion/restore by command line (no phpmyadmin installed). I do have android devices that should have the complete address book, though.
@nursoda I saw that. Let's continue on your issue, not here.
Can we please have an official release that contains this bugfix, so we can finally upgrade to 10.0.2 (that contains some security fixes afaik) without breaking contacts? I've tried to upgrade today but the latest version in the app repository is still 1.5.1 (and 1.5.2 also doesn't contain this fix). Re-importing my contacts also didn't help...
1.5.3 will be shipped on 1 February
OK, so I've manually updated contacts using the archive provided in https://github.com/nextcloud/contacts/pull/73 and after that upgraded NC to 10.0.2 (waiting another 3 weeks for the release is not acceptable for me).
It seems to work, but I noticed something that I don't understand: on the next NC 10.0.1 website reload after updating contacts, NC detected that "contacts needs to be updated". The update was successful, but it seems that nothing has been changed! Then, during the upgrade to 10.0.2, I noticed that some contacts DB tables have been deleted.
My questions are: why was it necessary to "update" the app in 10.0.1 and what was this update actually doing (the table deletions happened later, during the upgrade to 10.0.2)? And can the contacts app still be updated to 1.5.3 (when it's released) using the admin interface or do I have to always update it manually from now on? I'm really curious, because it already happened with other apps that I've installed manually (e. g. notes)...
No, it was because of a database restructuration. This shouldn't happen anymore now.
I just want to make sure that I understand you: the first update (with NC 10.0.1) changed the contacts DB structure (i. e. created new tables) and the upgrade from NC 10.0.1 to 10.0.2 then deleted the obsolete tables? Is that correct?
Not fully certain, but yeah, it was something like that iirc.
OK, thanks for clarification!
Most helpful comment
Good luck!