"Administration / Subscription" shows empty page

Hello,

I just tried to check our subscription status (specifically the userlimit / used licenses) but when navigating to “Administration / Subscription” in the webinterface I only get an empty page.
The passbolt error log doesn’t show any error when trying to load that page, as well as the nginx error log.

Checking the license manually:

# su www -c 'bin/cake passbolt license_check'
[...]
Thanks for choosing Passbolt Pro
Below are your subscription key details
[...]

The subscription details are OK and plausible, but I can’t get any info through the webinterface as it just shows a “blank” page (i.e. the dark/grey background of the dark theme, but no content)

Our Passbolt instance runs in a FreeBSD jail and was set up from source as per the “Install CE from source” [1] and “Upgrade CE to Pro” [2] tutorials.
Installed versions are:
Passbolt PRO 3.2.2
Cakephp 4.2.4

[1] Passbolt Help | Install passbolt API from source
[2] Passbolt Help | Upgrade Passbolt from CE source install to Pro

Hi @sko ,

Did you try to launch a healthcheck on your server (replace www-data with your webserver username).

su -s /bin/bash -c "/var/www/passbolt/bin/cake passbolt healthcheck" www-data

Can you post the output here ?

thanks !

Hi @_jc

Thanks for your reply.
The healthcheck passes without any errors:

# su www -c 'bin/cake passbolt healthcheck'

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

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

 Environment

 [PASS] PHP version 7.4.22.
 [PASS] PCRE compiled with unicode support.
 [PASS] The temporary directory and its content are writable.
 [PASS] The public image directory and its content are writable.
 [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.ourdomain.de
 [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] 36 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 /usr/local/www/.gnupg.
 [PASS] The directory /usr/local/www/.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.2.2).
 [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.

 [PASS] No error found. Nice one sparky!

Everything is working fine and we don’t see any errors, weird behaviour etc (the jail is running for ~6 months now), it’s only the “Subscription” page that doesn’t work.

For the sake of completeness, here’s all nginx logs when I access that page:

10.50.51.237 - - [02/Sep/2021:08:02:08 +0200] "GET /app/administration/subscription HTTP/1.0" 200 3179 "-" "Mozilla/5.0 (X11; FreeBSD amd64; rv:78.0) Gecko/20100101 Firefox/78.0"
10.50.51.237 - - [02/Sep/2021:08:02:08 +0200] "GET /css/themes/midgar/api_main.min.css?v=3.2.2 HTTP/1.0" 304 0 "-" "Mozilla/5.0 (X11; FreeBSD amd64; rv:78.0) Gecko/20100101 Firefox/78.0"
10.50.51.237 - - [02/Sep/2021:08:02:08 +0200] "GET /js/app/api-app.js?v=3.2.2 HTTP/1.0" 304 0 "-" "Mozilla/5.0 (X11; FreeBSD amd64; rv:78.0) Gecko/20100101 Firefox/78.0"
10.50.51.237 - - [02/Sep/2021:08:02:08 +0200] "GET /js/app/api-vendors.js?v=3.2.2 HTTP/1.0" 304 0 "-" "Mozilla/5.0 (X11; FreeBSD amd64; rv:78.0) Gecko/20100101 Firefox/78.0"
10.50.51.237 - - [02/Sep/2021:08:02:09 +0200] "GET /users/me.json?api-version=v2 HTTP/1.0" 200 5266 "-" "Mozilla/5.0 (X11; FreeBSD amd64; rv:78.0) Gecko/20100101 Firefox/78.0"
10.50.51.237 - - [02/Sep/2021:08:02:09 +0200] "GET /auth/is-authenticated.json HTTP/1.0" 200 223 "-" "Mozilla/5.0 (X11; FreeBSD amd64; rv:78.0) Gecko/20100101 Firefox/78.0"
10.50.51.237 - - [02/Sep/2021:08:02:09 +0200] "GET /auth/is-authenticated.json HTTP/1.0" 200 223 "-" "Mozilla/5.0 (X11; FreeBSD amd64; rv:78.0) Gecko/20100101 Firefox/78.0"
10.50.51.237 - - [02/Sep/2021:08:02:09 +0200] "GET /settings.json?api-version=v2 HTTP/1.0" 200 1626 "-" "Mozilla/5.0 (X11; FreeBSD amd64; rv:78.0) Gecko/20100101 Firefox/78.0"
10.50.51.237 - - [02/Sep/2021:08:02:09 +0200] "GET /auth/is-authenticated.json HTTP/1.0" 200 223 "-" "Mozilla/5.0 (X11; FreeBSD amd64; rv:78.0) Gecko/20100101 Firefox/78.0"
10.50.51.237 - - [02/Sep/2021:08:02:09 +0200] "GET /auth/is-authenticated.json HTTP/1.0" 200 223 "-" "Mozilla/5.0 (X11; FreeBSD amd64; rv:78.0) Gecko/20100101 Firefox/78.0"
10.50.51.237 - - [02/Sep/2021:08:02:09 +0200] "GET /account/settings.json?api-version=v2 HTTP/1.0" 200 518 "-" "Mozilla/5.0 (X11; FreeBSD amd64; rv:78.0) Gecko/20100101 Firefox/78.0"
10.50.51.237 - - [02/Sep/2021:08:02:09 +0200] "GET /account/settings.json?api-version=v2 HTTP/1.0" 200 518 "-" "Mozilla/5.0 (X11; FreeBSD amd64; rv:78.0) Gecko/20100101 Firefox/78.0"
10.50.51.237 - - [02/Sep/2021:08:02:09 +0200] "GET /account/settings.json?api-version=v2 HTTP/1.0" 200 518 "-" "Mozilla/5.0 (X11; FreeBSD amd64; rv:78.0) Gecko/20100101 Firefox/78.0"
10.50.51.237 - - [02/Sep/2021:08:02:09 +0200] "GET /ee/subscription/key.json?api-version=v2 HTTP/1.0" 200 1809 "-" "Mozilla/5.0 (X11; FreeBSD amd64; rv:78.0) Gecko/20100101 Firefox/78.0"

and this is all the source of the page that is shown:

<!doctype html>
<html class="passbolt no-js version launching no-passboltplugin" lang="en">
<head>
    <meta charset="utf-8"/>
    <title>Passbolt | Open source password manager for teams</title>
    <!--

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

    Open source password manager for teams
    Copyright (c) Passbolt SA (https://www.passbolt.com)


    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as
    published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program. If not, see http://www.gnu.org/licenses/.


    -->
    <meta name="description" content="Open source password manager for teams">
    <meta name="keywords" content="Passbolt, password manager, online password manager, open source password manager">
    <meta name="robots" content="noindex, nofollow">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="shortcut icon" type="image/x-icon" href="https://passbolt.ourdomain.de/favicon.ico" />
    <link rel="icon" href="https://passbolt.ourdomain.de/favicon_32.png" sizes="32x32" />
    <link rel="icon" href="https://passbolt.ourdomain.de/favicon_57.png" sizes="57x57" />
    <link rel="icon" href="https://passbolt.ourdomain.de/favicon_76.png" sizes="76x76" />
    <link rel="icon" href="https://passbolt.ourdomain.de/favicon_96.png" sizes="96x96" />
    <link rel="icon" href="https://passbolt.ourdomain.de/favicon_128.png" sizes="128x128" />
    <link rel="icon" href="https://passbolt.ourdomain.de/favicon_192.png" sizes="192x192" />
    <link rel="icon" href="https://passbolt.ourdomain.de/favicon_228.png" sizes="228x228" />
    <base href="https://passbolt.ourdomain.de/">
    <link rel="stylesheet" href="https://passbolt.ourdomain.de/css/themes/midgar/api_main.min.css?v=3.2.2" id="js_css_theme"/></head>
<body>
<!-- main -->
<div id="container" class="page ">
<div class="temporary skeleton">
    <div id="container" class="page password">
        <div class="header first">
            <nav><div class="primary navigation top"></div></nav>
        </div>
        <div class="header second"></div>
        <div class="header third"></div>
        <div class="panel main"></div>
    </div>
    <footer>
        <div class="footer"></div>
    </footer>
</div>
</div>
<script src="https://passbolt.ourdomain.de/js/app/api-vendors.js?v=3.2.2" cache-version="3.2.2"></script><script src="https://passbolt.ourdomain.de/js/app/api-app.js?v=3.2.2" cache-version="3.2.2"></script></body>
</html>

Hi @sko

It looks like the JS application is crashing somewhere.

Do you seen any error in the browser console?

If you right click on the page, click “inspect” or “inspect element” then click on the console tab.
Tell us more about which browser you are using and which version.

If there is nothing, you can also have a look at browser extension console, which is different from the previous one.

  • If you are using Google Chrome can you please go to: chrome://extensions ; Activate the Developer mode in the top right corner ; look for the Passbolt card and click details button ; Looks for the Inspect views and the index.html link ; A new window will appear this is the debugger of the browser extension, try to reproduce the error and send us the logs

  • On Firefox, you can go to: about:debugging#/runtime/this-firefox ; Then locate Passbolt and click Inspect ; A new tab for the console of the browser extension will appear.

As you are using a pro subscription, you can also reach us through support@passbolt.com

Regards,

Hi @_jc

There are no errors in the browser console, only 2 warnings I also seem to get on any other page of the webinterface:

This page uses the non standard property “zoom”. Consider using calc() in the relevant property values, or using “transform” along with “transform-origin: 0 0”. subscription

Source map error: Error: NetworkError when attempting to fetch resource.
Resource URL: moz-extension://be458e05-c22d-4570-938a-c22fabcce838/lib/browser-polyfill.js
Source Map URL: browser-polyfill.js.map

The second one is a known bug in Firefox: 1437937 - WebExtensions Doesn't Find Source Maps
That bugreport is open for 4.5 years now without this being fixed - it seems that crippling the UI and breaking stuff is more important to Firefox developers nowadays…

I’m using Firefox ESR from packages, which is currently at version 78.13.0:

% pkg info | grep firefox
firefox-esr-78.13.0_1,1

Yes, we have a Pro subscription, although this being a manual installation on FreeBSD I wasn’t sure if this is covered by pro support.

Thanks,
Sebastian

Hi,

There is no problem for us than you are using FreeBSD, we are doing our best to help you to understand and solve your problem.

I tried to reproduce your problem by using a Passbolt pro and using Firefox ESR (on both MacOS and a Debian install) without reproduce your issue :confused:

Did you enabled browser extension console ?

  • If you are using Google Chrome can you please go to: chrome://extensions ; Activate the Developer mode in the top right corner ; look for the Passbolt card and click details button ; Looks for the Inspect views and the index.html link ; A new window will appear this is the debugger of the browser extension, try to reproduce the error and send us the logs
  • On Firefox, you can go to: about:debugging#/runtime/this-firefox ; Then locate Passbolt and click Inspect ; A new tab for the console of the browser extension will appear.

Did you also tried with another browser (a non-ESR firefox, chromium family browser, or other…) ?

Best,