Unable to modify passwords

Checklist
[ * ] I have read intro post: About the Installation Issues category
[ * ] I have read the tutorials, help and searched for similar issues
[ * ] I provide relevant information about my server (component names and versions, etc.)
[ * ] I provide a copy of my logs and healthcheck
[ * ] I describe the steps I have taken to trouble shoot the problem
[ * ] I describe the steps on how to reproduce the issue

I am unable to modify or delete passwords after adding them to Passbolt. Here is the following image I get when trying to modify a password:

Capture

Whenever I try to delete a password it just states that the password was successfully deleted, but it still remains.

I am running passbolt in a Ubuntu 20.04 container installed using the method described here. The host is an Ubuntu 20.04 ppc64el server running mysql 8.0. The container is accessing the DB over the local container network. Also, there is another container running Apache that is in acting as a forwarding proxy for passbolt, as I have other web apps and services routed through.

Here is my Healthcheck:


     ____                  __          ____  
    / __ \____  _____ ____/ /_  ____  / / /_ 
   / /_/ / __ `/ ___/ ___/ __ \/ __ \/ / __/ 
  / ____/ /_/ (__  |__  ) /_/ / /_/ / / /    
 /_/    \__,_/____/____/_.___/\____/_/\__/   

 Open source password manager for teams
-------------------------------------------------------------------------------
 Healthcheck shell........        
-------------------------------------------------------------------------------

 Environment

 [PASS] PHP version 7.4.3.
 [PASS] PCRE compiled with unicode support.
 [PASS] The temporary directory and its content are writable and not executable.
 [PASS] The logs directory and its content are writable.
 [PASS] GD or Imagick extension is installed.
 [PASS] Intl extension is installed.
 [PASS] Mbstring extension is installed.

 Config files

 [PASS] The application config file is present
 [PASS] The passbolt config file is present

 Core config

 [PASS] Debug mode is off.
 [PASS] Cache is working.
 [PASS] Unique value set for security.salt
 [PASS] Full base url is set to https://passbolt.host.com
 [PASS] App.fullBaseUrl validation OK.
 [PASS] /healthcheck/status is reachable.

 SSL Certificate

 [PASS] SSL peer certificate validates
 [PASS] Hostname is matching in SSL certificate.
 [PASS] Not using a self-signed certificate

 Database

 [PASS] The application is able to connect to the database
 [PASS] 26 tables found
 [PASS] Some default content is present
 [PASS] The database schema up to date.

 GPG Configuration

 [PASS] PHP GPG Module is installed and loaded.
 [PASS] The environment variable GNUPGHOME is set to /home/www-data/.gnupg.
 [PASS] The directory /home/www-data/.gnupg containing the keyring is writable by the webserver user.
 [PASS] The server OpenPGP key is not the default one
 [PASS] The public key file is defined in config/passbolt.php and readable.
 [PASS] The private key file is defined in config/passbolt.php and readable.
 [PASS] The server key fingerprint matches the one defined in config/passbolt.php.
 [PASS] The server public key defined in the config/passbolt.php (or environment variables) is in the keyring.
 [PASS] There is a valid email id defined for the server key.
 [PASS] The public key can be used to encrypt a message.
 [PASS] The private key can be used to sign a message.
 [PASS] The public and private keys can be used to encrypt and sign a message.
 [PASS] The private key can be used to decrypt a message.
 [PASS] The private key can be used to decrypt and verify a message.
 [PASS] The public key can be used to verify a signature.

 Application configuration

 [PASS] Using latest passbolt version (3.3.0).
 [PASS] Passbolt is configured to force SSL use.
 [PASS] App.fullBaseUrl is set to HTTPS.
 [PASS] Selenium API endpoints are disabled.
 [PASS] Search engine robots are told not to index content.
 [PASS] Registration is closed, only administrators can add users.
 [PASS] Serving the compiled version of the javascript app
 [PASS] All email notifications will be sent.

 JWT Authentication

 [WARN] The JWT Authentication plugin is disabled
 [HELP] Set the environment variable PASSBOLT_PLUGINS_JWT_AUTHENTICATION_ENABLED to true

 [PASS] No error found. Nice one sparky!

Hi @krosseyed Thanks for providing the logs and description. The error is a generic message but confirms what you are discovering in the database. Are you seeing any errors in the app logs or the web server logs? Also, you should check the extension logs by inspecting the extension in the browser. (search forum if you need instructions on this)

Thank you @garrett for getting back to me about this. Below is the output of ~/passbolt/logs/error.log

This is strange, as I am able to read and write to the DB just fine. I just cannot modify or delete.

2021-11-23 04:32:58 Error: [Cake\View\Exception\SerializationFailureException] Serialization of View data failed. in /var/www/passbolt/vendor/cakephp/cakephp/src/View/SerializedView.php on line 112
Caused by: [PDOException] SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'groups Groups LEFT JOIN users Modifier ON Groups.modified_by = (Modifier.id) LEF' at line 1 in /var/www/passbolt/vendor/cakephp/cakephp/src/Database/Statement/MysqlStatement.php on line 39
Request URL: /groups.json?api-version=v2&contain%5Bmy_group_user%5D=1&contain%5Bmodifier%5D=0&contain%5Bgroup_user%5D=1
Client IP: 10.208.41.233


2021-11-23 04:33:03 Error: [PDOException] SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'groups Groups INNER JOIN groups_users GroupsUsers ON Groups.id = (GroupsUsers.gr' at line 1 in /var/www/passbolt/vendor/cakephp/cakephp/src/Database/Statement/MysqlStatement.php on line 39
Request URL: /resources/c67d3928-66cc-4da6-b7db-697c76ffb9e9.json?api-version=v2
Client IP: 10.208.41.233


2021-11-23 04:33:08 Error: [Cake\View\Exception\SerializationFailureException] Serialization of View data failed. in /var/www/passbolt/vendor/cakephp/cakephp/src/View/SerializedView.php on line 112
Caused by: [PDOException] SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'groups Groups LEFT JOIN users Modifier ON Groups.modified_by = (Modifier.id) LEF' at line 1 in /var/www/passbolt/vendor/cakephp/cakephp/src/Database/Statement/MysqlStatement.php on line 39
Request URL: /groups.json?api-version=v2&contain%5Bmy_group_user%5D=1&contain%5Bmodifier%5D=0&contain%5Bgroup_user%5D=1
Client IP: 10.208.41.233


2021-11-23 04:33:21 Error: [PDOException] SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'groups Groups INNER JOIN groups_users GroupsUsers ON Groups.id = (GroupsUsers.gr' at line 1 in /var/www/passbolt/vendor/cakephp/cakephp/src/Database/Statement/MysqlStatement.php on line 39
Request URL: /users.json?api-version=v2&filter%5Bhas-access%5D=c67d3928-66cc-4da6-b7db-697c76ffb9e9
Client IP: 10.208.41.233

Also, I noticed that when going to the users tab the page does not load.

@krosseyed This seems very much like Internal error occur on passbolt page which is due to a missing setting needed for MySQL 8. The error is possibly due to the quoteIdentifiers setting needing to be set to true.

Thank you for that tidbit @garrett, as that was the fix!

In the app.php file, there are two locations where there is a quoteIdentifiers variable. make sure you change both of them as one part of the config refers to a test db.

@krosseyed Great! Just a note for future readers - the most recent version at this writing (3.3.0) has this setting defaulted to true. It helps to mitigate issues related to reserved words in MySQL 8 (specifically the use of GROUPS).

Thank you @garrett for letting everyone know that this will be a non-issue here on out. This issue now makes sense as I migrated an old v2 app.php config.

If any readers are performing an upgrade from an older version, you will want to check for this variable.