Health check:
Healthcheck shell
Environment
[PASS] PHP version 8.1.2-1ubuntu2.18.
[PASS] PHP version is 8.1 or above.
[PASS] PCRE compiled with unicode support.
[PASS] Mbstring extension is installed.
[PASS] Intl extension is installed.
[PASS] GD or Imagick extension is installed.
[PASS] The temporary directory and its content are writable and not executable.
[PASS] The logs directory and its content are writable.
Config files
[PASS] The application config file is present
[PASS] The passbolt config file is present
Core config
[PASS] Cache is working.
[PASS] Debug mode is off.
[PASS] Unique value set for security.salt
[PASS] Full base url is set to https://XXXX (edited out)
[PASS] App.fullBaseUrl validation OK.
[FAIL] Could not reach the /healthcheck/status with the url specified in App.fullBaseUrl
[HELP] Check that the domain name is correct in /etc/passbolt/passbolt.php
[HELP] Check the network settings
SSL Certificate
[WARN] SSL peer certificate does not validate.
[WARN] Hostname does not match when validating certificates.
[WARN] Using a self-signed certificate.
[HELP] Check Troubleshooting SSL/TLS | Passbolt documentation.
SMTP settings
[PASS] The SMTP Settings plugin is enabled.
[PASS] SMTP Settings coherent. You may send a test email to validate them.
[PASS] The SMTP Settings source is: database.
[WARN] The SMTP Settings plugin endpoints are enabled.
[HELP] It is recommended to disable the plugin endpoints.
[HELP] Set the PASSBOLT_SECURITY_SMTP_SETTINGS_ENDPOINTS_DISABLED environment variable to true.
[HELP] Or set passbolt.security.smtpSettings.endpointsDisabled to true in /etc/passbolt/passbolt.php.
[PASS] No custom SSL configuration for SMTP server.
JWT Authentication
[PASS] The JWT Authentication plugin is enabled.
[FAIL] The /etc/passbolt/jwt/ directory should not be writable.
[HELP] You can try:
[HELP] sudo chown -Rf root:www-data /etc/passbolt/jwt/
[HELP] sudo chmod 750 /etc/passbolt/jwt/
[HELP] sudo chmod 640 /etc/passbolt/jwt/jwt.key
[HELP] sudo chmod 640 /etc/passbolt/jwt/jwt.pem
[PASS] A valid JWT key pair was found.
GPG Configuration
[PASS] PHP GPG Module is installed and loaded.
[PASS] The environment variable GNUPGHOME is set to /var/lib/passbolt/.gnupg.
[PASS] The directory /var/lib/passbolt/.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 /etc/passbolt/passbolt.php and readable.
[PASS] The private key file is defined in /etc/passbolt/passbolt.php and readable.
[PASS] The server key fingerprint matches the one defined in /etc/passbolt/passbolt.php.
[PASS] The server public key defined in the /etc/passbolt/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.
[PASS] The server public key format is Gopengpg compatible.
[PASS] The server private key format is Gopengpg compatible.
Application configuration
[PASS] Using latest passbolt version (4.9.1).
[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.
[INFO] The Self Registration plugin is enabled.
[INFO] Registration is closed, only administrators can add users.
[PASS] The deprecated self registration public setting was not found in /etc/passbolt/passbolt.php.
[WARN] Host availability checking is disabled.
[HELP] Make sure this instance is not publicly available on the internet.
[HELP] Or set the PASSBOLT_EMAIL_VALIDATE_MX environment variable to true.
[HELP] Or set passbolt.email.validate.mx to true in /etc/passbolt/passbolt.php.
[PASS] Serving the compiled version of the javascript app.
[WARN] Some email notifications are disabled by the administrator.
[PASS] The database schema is up to date.
Database
[PASS] The application is able to connect to the database
[PASS] 31 tables found.
[PASS] Some default content is present.
[FAIL] 2 error(s) found. Hang in there!
Data Integrity:
Too long to post here. But every check passes.
Cleanup:
Cleanup shell (fix mode)
No issue found, data looks squeaky clean!
Chrome Debug Log:
index.js:2 Error: The user is not set
at ee.get (index.js:2:30088)
at Ro.get (index.js:2:226545)
at index.js:2:227271
updateSuggestedResourcesBadge @ index.js:2
index.js:2 PassboltBadResponseError: An internal error occurred. The server response could not be parsed. Please contact your administrator.
at ze.parseResponseJson (index.js:2:39721)
at async Rs.findAll (index.js:2:136374)
at async Ao.findAll (index.js:2:225117)
at async Ao.updateLocalStorage (index.js:2:224550)
at async Op.exec (index.js:2:438030)
at async Op._exec (index.js:2:437876)
at async f. (index.js:2:440359)
_exec @ index.js:2
app.js:2 Uncaught (in promise) {stack: ‘PassboltBadResponseError: An internal error occurr…hjepacocaffmoppf/serviceWorker/index.js:2:440359)’, message: ‘An internal error occurred. The server response co…not be parsed. Please contact your administrator.’, name: ‘PassboltBadResponseError’}message: "An internal error occurred. The server response could not be parsed. Please contact your administrator."name: "PassboltBadResponseError"stack: “PassboltBadResponseError: An internal error occurred. The server response could not be parsed. Please contact your administrator.\n at ze.parseResponseJson (chrome-extension://didegimhafipceonhjepacocaffmoppf/serviceWorker/index.js:2:39721)\n at async Rs.findAll (chrome-extension://didegimhafipceonhjepacocaffmoppf/serviceWorker/index.js:2:136374)\n at async Ao.findAll (chrome-extension://didegimhafipceonhjepacocaffmoppf/serviceWorker/index.js:2:225117)\n at async Ao.updateLocalStorage (chrome-extension://didegimhafipceonhjepacocaffmoppf/serviceWorker/index.js:2:224550)\n at async Op.exec (chrome-extension://didegimhafipceonhjepacocaffmoppf/serviceWorker/index.js:2:438030)\n at async Op._exec (chrome-extension://didegimhafipceonhjepacocaffmoppf/serviceWorker/index.js:2:437876)\n at async f. (chrome-extension://didegimhafipceonhjepacocaffmoppf/serviceWorker/index.js:2:440359)”[[Prototype]]: Objectconstructor: ƒ Object()hasOwnProperty: ƒ hasOwnProperty()isPrototypeOf: ƒ isPrototypeOf()propertyIsEnumerable: ƒ propertyIsEnumerable()toLocaleString: ƒ toLocaleString()toString: ƒ toString()valueOf: ƒ valueOf()defineGetter: ƒ defineGetter()defineSetter: ƒ defineSetter()lookupGetter: ƒ lookupGetter()lookupSetter: ƒ lookupSetter()proto: (…)get proto: ƒ proto()set proto: ƒ proto()
(anonymous) @ app.js:2
_onMessage @ app.js:2
(anonymous) @ app.js:2
Thanks!