Contacts: Entering new contact results in: contact could not be saved

Created on 29 Oct 2017  路  15Comments  路  Source: nextcloud/contacts

Steps to reproduce

  1. Create a new entry (any addressbook)
  2. Mark the string <New contact>, delete it with backspace and type the new name, e.g. Testname, Test2, ...
  3. This results in the message: contact could not be saved

Expected behaviour

The name should be accepted and stored correctly without error message

Actual behaviour

The error message pops up. Still the new contact is stored. Reload of the page shows the new name. Subsequent sync with Android through DavDroid transfers it to the Android device

General server configuration

Operating system: Linux dshpl1 3.10.102 #15152 SMP Fri Oct 6 18:13:48 CST 2017 x86_64

Web server: Apache/2.2.34 (Unix) mod_fastcgi/mod_fastcgi-SNAP-0910052141 (fpm-fcgi)

Database: mysql 10.0.31

PHP version: 5.6.31


PHP-modules loaded

 - Core
 - date
 - ereg
 - libxml
 - pcre
 - zlib
 - ctype
 - dom
 - fileinfo
 - filter
 - hash
 - json
 - mbstring
 - pcntl
 - SPL
 - PDO
 - readline
 - Reflection
 - session
 - SimpleXML
 - standard
 - tokenizer
 - xml
 - xmlreader
 - xmlwriter
 - mysqlnd
 - cgi-fcgi
 - apcu
 - bcmath
 - bz2
 - calendar
 - curl
 - exif
 - ftp
 - gd
 - gettext
 - gmp
 - iconv
 - imap
 - intl
 - ldap
 - mysql
 - mysqli
 - openssl
 - pdo_dblib
 - pdo_mysql
 - pdo_pgsql
 - pdo_sqlite
 - pgsql
 - Phar
 - posix
 - shmop
 - soap
 - sockets
 - sqlite3
 - sysvmsg
 - sysvsem
 - sysvshm
 - wddx
 - xmlrpc
 - zip
 - mcrypt
 - mhash
 - apc
 - Zend OPcache

Nextcloud configuration

Nextcloud version: 12.0.3 - 12.0.3.3

Updated from an older Nextcloud/ownCloud or fresh install: ownCloud -> Nextcloud -> Nextcloud

Where did you install Nextcloud from: Nextcloud website

Are you using external storage, if yes which one: files_external is disabled

Are you using encryption: no

Are you using an external user-backend, if yes which one: LDAP


Signing status

[]


Enabled apps

 - activity: 2.5.2
 - bruteforcesettings: 1.0.2
 - calendar: 1.5.6
 - comments: 1.2.0
 - contacts: 2.0.1
 - dav: 1.3.0
 - federatedfilesharing: 1.2.0
 - federation: 1.2.0
 - files: 1.7.2
 - files_pdfviewer: 1.1.1
 - files_sharing: 1.4.0
 - files_texteditor: 2.4.1
 - files_trashbin: 1.2.0
 - files_versions: 1.5.0
 - files_videoplayer: 1.1.0
 - gallery: 17.0.0
 - issuetemplate: 0.2.2
 - logreader: 2.0.0
 - lookup_server_connector: 1.0.0
 - nextcloud_announcements: 1.1
 - notifications: 2.0.0
 - oauth2: 1.0.5
 - password_policy: 1.2.2
 - provisioning_api: 1.2.0
 - serverinfo: 1.2.0
 - sharebymail: 1.2.0
 - socialsharing_email: 1.0.1
 - survey_client: 1.0.0
 - systemtags: 1.2.0
 - tasks: 0.9.5
 - theming: 1.3.0
 - twofactor_backupcodes: 1.1.1
 - updatenotification: 1.2.0
 - user_ldap: 1.2.1
 - workflowengine: 1.2.0


Disabled apps

 - admin_audit
 - encryption
 - files_external
 - firstrunwizard
 - user_external


Content of config/config.php

{
    "instanceid": "521dba5201815",
    "passwordsalt": "***REMOVED SENSITIVE VALUE***",
    "datadirectory": "\/volume1\/web\/owncloud_data\/data",
    "dbtype": "mysql",
    "version": "12.0.3.3",
    "installed": true,
    "forcessl": true,
    "ldapIgnoreNamingRules": false,
    "theme": "",
    "maintenance": false,
    "loglevel": "1",
    "trusted_domains": [
        "***REMOVED SENSITIVE VALUE***",
        "***REMOVED SENSITIVE VALUE***:443",
        "192.168.1.10:443",
        "192.168.1.10"
    ],
    "secret": "***REMOVED SENSITIVE VALUE***",
    "share_folder": "\/Shared",
    "dbname": "owncloud",
    "dbhost": "127.0.0.1:3307",
    "dbuser": "***REMOVED SENSITIVE VALUE***",
    "dbpassword": "***REMOVED SENSITIVE VALUE***",
    "trashbin_retention_obligation": "auto",
    "appstore.experimental.enabled": true,
    "appstoreurl": "https:\/\/marketplace.owncloud.com\/api\/v0",
    "ldapProviderFactory": "\\OCA\\User_LDAP\\LDAPProviderFactory",
    "overwrite.cli.url": "https:\/\/***REMOVED SENSITIVE VALUE***\/nextcloud",
    "updater.release.channel": "stable"
}


LDAP config

root:/volume1/web/nextcloud# sudo -u http php56 occ ldap:show-config
+-------------------------------+-----------------------------------+
| Configuration                 |                                   |
+-------------------------------+-----------------------------------+
| hasMemberOfFilterSupport      |                                   |
| hasPagedResultSupport         |                                   |
| homeFolderNamingRule          |                                   |
| lastJpegPhotoLookup           | 0                                 |
| ldapAgentName                 | uid=root,cn=users,dc=***REMOVED SENSITIVE VALUE*** |
| ldapAgentPassword             | ***                               |
| ldapAttributesForGroupSearch  |                                   |
| ldapAttributesForUserSearch   |                                   |
| ldapBackupHost                |                                   |
| ldapBackupPort                | 389                               |
| ldapBase                      | dc=***REMOVED SENSITIVE VALUE***                   |
| ldapBaseGroups                | dc=***REMOVED SENSITIVE VALUE***                   |
| ldapBaseUsers                 | dc=***REMOVED SENSITIVE VALUE***                   |
| ldapCacheTTL                  | 600                               |
| ldapConfigurationActive       | 1                                 |
| ldapDefaultPPolicyDN          |                                   |
| ldapDynamicGroupMemberURL     |                                   |
| ldapEmailAttribute            |                                   |
| ldapExperiencedAdmin          | 0                                 |
| ldapExpertUUIDGroupAttr       |                                   |
| ldapExpertUUIDUserAttr        |                                   |
| ldapExpertUsernameAttr        |                                   |
| ldapGidNumber                 | gidNumber                         |
| ldapGroupDisplayName          | cn                                |
| ldapGroupFilter               | (&(|(objectclass=posixGroup)))    |
| ldapGroupFilterGroups         |                                   |
| ldapGroupFilterMode           | 0                                 |
| ldapGroupFilterObjectclass    | posixGroup                        |
| ldapGroupMemberAssocAttr      | memberUid                         |
| ldapHost                      | localhost                         |
| ldapIgnoreNamingRules         |                                   |
| ldapLoginFilter               | displayName=%uid                  |
| ldapLoginFilterAttributes     |                                   |
| ldapLoginFilterEmail          | 0                                 |
| ldapLoginFilterMode           | 1                                 |
| ldapLoginFilterUsername       | 0                                 |
| ldapNestedGroups              | 0                                 |
| ldapOverrideMainServer        | 0                                 |
| ldapPagingSize                | 500                               |
| ldapPort                      | 389                               |
| ldapQuotaAttribute            |                                   |
| ldapQuotaDefault              |                                   |
| ldapTLS                       | 1                                 |
| ldapUserDisplayName           | cn                                |
| ldapUserDisplayName2          |                                   |
| ldapUserFilter                | (|(objectclass=posixAccount))     |
| ldapUserFilterGroups          |                                   |
| ldapUserFilterMode            | 0                                 |
| ldapUserFilterObjectclass     | posixAccount                      |
| ldapUuidGroupAttribute        | auto                              |
| ldapUuidUserAttribute         | auto                              |
| turnOffCertCheck              | 1                                 |
| turnOnPasswordChange          | 0                                 |
| useMemberOfToDetectMembership | 1                                 |
+-------------------------------+-----------------------------------+
+-------------------------------+---------------------------------------------------------------------+
| Configuration                 | s01                                                                 |
+-------------------------------+---------------------------------------------------------------------+
| hasMemberOfFilterSupport      |                                                                     |
| hasPagedResultSupport         |                                                                     |
| homeFolderNamingRule          |                                                                     |
| lastJpegPhotoLookup           | 0                                                                   |
| ldapAgentName                 | uid=root,cn=users,dc=***REMOVED SENSITIVE VALUE***                                   |
| ldapAgentPassword             | ***                                                                 |
| ldapAttributesForGroupSearch  |                                                                     |
| ldapAttributesForUserSearch   |                                                                     |
| ldapBackupHost                |                                                                     |
| ldapBackupPort                |                                                                     |
| ldapBase                      | dc=***REMOVED SENSITIVE VALUE***                                                     |
| ldapBaseGroups                | dc=***REMOVED SENSITIVE VALUE***                                                     |
| ldapBaseUsers                 | dc=***REMOVED SENSITIVE VALUE***                                                     |
| ldapCacheTTL                  | 600                                                                 |
| ldapConfigurationActive       | 1                                                                   |
| ldapDefaultPPolicyDN          |                                                                     |
| ldapDynamicGroupMemberURL     |                                                                     |
| ldapEmailAttribute            |                                                                     |
| ldapExperiencedAdmin          | 0                                                                   |
| ldapExpertUUIDGroupAttr       |                                                                     |
| ldapExpertUUIDUserAttr        |                                                                     |
| ldapExpertUsernameAttr        |                                                                     |
| ldapGidNumber                 | gidNumber                                                           |
| ldapGroupDisplayName          | cn                                                                  |
| ldapGroupFilter               | (&(|(objectclass=posixGroup)))                                      |
| ldapGroupFilterGroups         |                                                                     |
| ldapGroupFilterMode           | 0                                                                   |
| ldapGroupFilterObjectclass    | posixGroup                                                          |
| ldapGroupMemberAssocAttr      | memberUid                                                           |
| ldapHost                      | localhost                                                           |
| ldapIgnoreNamingRules         |                                                                     |
| ldapLoginFilter               | (&(|(objectclass=inetOrgPerson))(|(uid=%uid)(|(displayName=%uid)))) |
| ldapLoginFilterAttributes     | displayName                                                         |
| ldapLoginFilterEmail          | 0                                                                   |
| ldapLoginFilterMode           | 0                                                                   |
| ldapLoginFilterUsername       | 1                                                                   |
| ldapNestedGroups              | 0                                                                   |
| ldapOverrideMainServer        | 0                                                                   |
| ldapPagingSize                | 500                                                                 |
| ldapPort                      | 389                                                                 |
| ldapQuotaAttribute            |                                                                     |
| ldapQuotaDefault              |                                                                     |
| ldapTLS                       | 0                                                                   |
| ldapUserDisplayName           | displayName                                                         |
| ldapUserDisplayName2          |                                                                     |
| ldapUserFilter                | (|(objectclass=inetOrgPerson))                                      |
| ldapUserFilterGroups          |                                                                     |
| ldapUserFilterMode            | 0                                                                   |
| ldapUserFilterObjectclass     | inetOrgPerson                                                       |
| ldapUuidGroupAttribute        | auto                                                                |
| ldapUuidUserAttribute         | auto                                                                |
| turnOffCertCheck              | 1                                                                   |
| turnOnPasswordChange          | 0                                                                   |
| useMemberOfToDetectMembership | 1                                                                   |
+-------------------------------+---------------------------------------------------------------------+

Client configuration

Browser: Chrome/Version 61.0.3163.100 (Official Build) (64-bit)

Operating system: Linux wombat 4.10.0-37-generic #41-Ubuntu SMP Fri Oct 6 20:20:37 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Most helpful comment

I might have good news... have experimented a bit and can report the following.

After completely cleaning the browser cache, stopping and restarting it

  • I can not reproduce the error anymore
  • the groups to the left are displayed correctly

Yay! :grin:

Thanks for your help and sorry for the browser cache. I should have thought of it before reporting back...

All 15 comments

Browser log

scripts-for-file-app.js Failed to load resource: net::ERR_NETWORK_CHANGED
socialsharingemail.js Failed to load resource: net::ERR_NETWORK_CHANGED
merged.js Failed to load resource: net::ERR_NETWORK_CHANGED
merged.js Failed to load resource: net::ERR_NETWORK_CHANGED
VM4209 core.js?v=73fc34a035468f7e9528f0804aa640a2-1:7 JQMIGRATE: Migrate is installed, version 1.4.0
Navigated to https://***reomved***/nextcloud/index.php/apps/contacts/
core.js?v=73fc34a035468f7e9528f0804aa640a2-1:sourcemap:7 JQMIGRATE: Migrate is installed, version 1.4.0
dav.js?v=73fc34a035468f7e9528f0804aa640a2-1:3738 PUT https://***reomved***/nextcloud/remote.php/dav/addressbooks/users/138e13fc-af17-1032-9bf3-612ab34ea9c9/HPL%20Private/f5256fd9-37bb-4f27-a1a7-180f8a1aa187.vcf 412 (Precondition failed)
send @ dav.js?v=73fc34a035468f7e9528f0804aa640a2-1:3738
callee$2$0$ @ dav.js?v=73fc34a035468f7e9528f0804aa640a2-1:3251
tryCatch @ dav.js?v=73fc34a035468f7e9528f0804aa640a2-1:121
invoke @ dav.js?v=73fc34a035468f7e9528f0804aa640a2-1:294
Gp.(anonymous function) @ dav.js?v=73fc34a035468f7e9528f0804aa640a2-1:330
onFulfilled @ dav.js?v=73fc34a035468f7e9528f0804aa640a2-1:3834
(anonymous) @ dav.js?v=73fc34a035468f7e9528f0804aa640a2-1:3823
co @ dav.js?v=73fc34a035468f7e9528f0804aa640a2-1:3819
send @ dav.js?v=73fc34a035468f7e9528f0804aa640a2-1:3229
updateObject @ dav.js?v=73fc34a035468f7e9528f0804aa640a2-1:3512
updateCard @ dav.js?v=73fc34a035468f7e9528f0804aa640a2-1:1850
updateCard @ dav.js?v=73fc34a035468f7e9528f0804aa640a2-1:1524
update @ contact_service.js:303
ctrl.updateContact @ contactDetails_controller.js:79
fn @ VM4684:4
$eval @ angular.js?v=73fc34a035468f7e9528f0804aa640a2-1:17682
(anonymous) @ angular.js?v=73fc34a035468f7e9528f0804aa640a2-1:24916
(anonymous) @ angular.js?v=73fc34a035468f7e9528f0804aa640a2-1:27691
forEach @ angular.js?v=73fc34a035468f7e9528f0804aa640a2-1:321
$$writeModelToScope @ angular.js?v=73fc34a035468f7e9528f0804aa640a2-1:27689
writeToModelIfNeeded @ angular.js?v=73fc34a035468f7e9528f0804aa640a2-1:27682
(anonymous) @ angular.js?v=73fc34a035468f7e9528f0804aa640a2-1:27676
validationDone @ angular.js?v=73fc34a035468f7e9528f0804aa640a2-1:27603
processAsyncValidators @ angular.js?v=73fc34a035468f7e9528f0804aa640a2-1:27586
$$runValidators @ angular.js?v=73fc34a035468f7e9528f0804aa640a2-1:27530
$$parseAndValidate @ angular.js?v=73fc34a035468f7e9528f0804aa640a2-1:27669
$commitViewValue @ angular.js?v=73fc34a035468f7e9528f0804aa640a2-1:27637
(anonymous) @ angular.js?v=73fc34a035468f7e9528f0804aa640a2-1:27774
(anonymous) @ angular.js?v=73fc34a035468f7e9528f0804aa640a2-1:19612
completeOutstandingRequest @ angular.js?v=73fc34a035468f7e9528f0804aa640a2-1:5964
(anonymous) @ angular.js?v=73fc34a035468f7e9528f0804aa640a2-1:6243
setTimeout (async)
Browser.self.defer @ angular.js?v=73fc34a035468f7e9528f0804aa640a2-1:6241
timeout @ angular.js?v=73fc34a035468f7e9528f0804aa640a2-1:19610
$$debounceViewValueCommit @ angular.js?v=73fc34a035468f7e9528f0804aa640a2-1:27773
$setViewValue @ angular.js?v=73fc34a035468f7e9528f0804aa640a2-1:27751
listener @ angular.js?v=73fc34a035468f7e9528f0804aa640a2-1:23988
dispatch @ core.js?v=73fc34a035468f7e9528f0804aa640a2-1:3
r.handle @ core.js?v=73fc34a035468f7e9528f0804aa640a2-1:3

Maybe this is the same issue as #405 or at least related? It does seem possible to enter a contact though, even if the system says the contrary, whereas @nova168168 says he can't...
The error message from the screen shot seems to be the same however.

Strange observation: originally I thought that this was related to entering Umlaute. I noticed it when entering the city and it would hiccup when the umlaut was entered. I then made a lot of experiments and it seemed that the speed I entered the letters made a difference. Entering them very slowly, waiting 3-4 seconds between every key-press did not raise the error. Don't know if this is of any relevance, but thought I'd mention it anyway...

I do not know about #402, but the description #397 sounds a bit like what I am seeing here. It seems to depend on entry speed there too. I have seen the behaviour in fields (City, Street) also, as described in #397, not only in the main name field.
My server is a synology diskstation which is not really fast, but not very slow either.

Just FYI: number of contacts is 544 (distributed over 5 addressbooks which are shared so that one user gets all the 544 contacts). Does not seem much to me, but who knows... :)

Yes, this is a duplicate of #397.
Error 412! :)

Thanks for the info :)
Should I rather wait for 2.0.2 (since nothing really bad seems to happen) or should I go for the last nightly build and check if the issue goes away?
Another question: is this behaviour an indicator meaning that I should tweak my nextcloud installation somehow (yes/potentially/no answer is sufficient ;)?

You can try the latest nightlies if you want yes! :)
This is a indicator that the server takes a long time to respond. So it might be great to check if everything is alright!

Tested the following build: nextcloud_contacts_nightly_build_2017-10-30.tar.gz

Problem has improved, but has not gone away, I can reproduce error messages when writing longer comments (a few words) into the Note field. Observations:

  • to the left no groups are displayed anymore, they are still contained in the contacts though
  • selecting a contact seems noticeably slower now before the details are displayed to the right

Any other information I can or should provide?

Could you post a screenshot of your network tab after a few errors? Especially the timeline part! :)

screenshot from 2017-10-31 23-58-22
I am unfamiliar with this kind of information, so please let me know if this is not what you expect :smiley:
Screenshot taken after a few errors have been displayed

That is exactly what I was looking for! :)
Unfortunately this is not what I was thinking it would look like. 馃

It's very strange. Do you just type continuously or with a specific way to do it?

Sorry for that... :wink:
I am typing with 4 or 5 fingers, pretty quick for an ordinary computer user, but nothing like a professional typist. Just typing away, sometimes spaces, sometimes waiting a bit thinking of what I want to write.

The messages pile up, mostly 2, sometimes up to 4 (or even more, I don't count them precisely) and then go away after some time one by one.

I might have good news... have experimented a bit and can report the following.

After completely cleaning the browser cache, stopping and restarting it

  • I can not reproduce the error anymore
  • the groups to the left are displayed correctly

Yay! :grin:

Thanks for your help and sorry for the browser cache. I should have thought of it before reporting back...

Was this page helpful?
0 / 5 - 0 ratings