Stuck on "loading, please wait" and JS errors after upgrade to v2 from v1

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

  • Passbolt Version: v2.0.4
  • Platform and Target:
    – Operating system: CentOS 7 3.10.0-514.21.1.el7.x86_64
    – PHP: 7.0.29
    – Web server: nginx 1.13.12
    – Database server: 5.5.56-MariaDB

What you did

Upgraded to v2 from v1.6

What happened

After login page stuck with “loading, please wait”

What you expected to happen

I want to be able to login already.


 ____                  __          ____  
/ __ \____  _____ ____/ /_  ____  / / /_ 

/ // / __ `/ / / __ / __ / / _/
/ / // ( |
) /
/ / /
/ / / /
/ _

Open source password manager for teams

Healthcheck shell


[PASS] PHP version 7.0.29.
[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
[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


[PASS] The application is able to connect to the database
[PASS] 19 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 server gpg key is not the default one
[PASS] The environment variable GNUPGHOME is set to [secret].
[PASS] The directory [secret] containing the keyring is writable by the webserver user.
[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 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 public key can be used to sign a message.
[PASS] The public key 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 (2.0.4).
[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.

No error found. Nice one sparky!

Error log


Nginx configuration file

server {
listen 443 ssl;

ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

root /var/www/html/passbolt/webroot;

location / {
    try_files $uri /index.php;

location ~ \.php$ {
    include fastcgi_params;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

location ~ /\.ht {
    deny  all;


Did you try to clear your browser cache, the javascript from v1 (passbolt.js) might be cached.
If that does not cut it could you check if there are any errors in the logs on the server?

This was the first thing I did. I have a number of JS errors in the console, cannot upload another image though lol. Here’s the link:

Anything on the server? In /logs at the root of your passbolt directory.

Like I said, the error log is empty. This looks like a pure frontend issue. Same thing happens on my collegue’s Chrome browser. Mine is Firefox.

This was the first thing I did.

I thought you meant the first thing you did is clear the cache.
Did you clear the browser cache?

Yes, this was the first thing I did. Why does the steal.production.js trying to access http://localhostusers/me.json?api-version=v1&async=false ?

Well that sucks. I have to rollback to 1.6. I was really looking forward to the password grouping/tagging functionality.

It looks like you have a problem with your configuration. It’s trying to access “http://localhostusers/me.json”. Did you configure your fullBaseUrl correctly in passbolt.php?

The configuration is quite straightforward

‘fullBaseUrl’ => ‘’,

Every script loads perfectly fine, you can check that on the attached console screen few posts earlier.

The problem seems to come from the <base href=“xxx” meta tags. In your case it probably outputs a href="http://localhost’, instead of the fullBaseUrl, for some reason. Can you confirm this?

2 more things to check:

  • git status should show that no files have been modified. Is that the case?
  • Could you check in your config directory if any file mentions ‘localhost’ somewhere? I don’t understand where this http://localhost comes from if your fulllBaseUrl is configured properly.

Deleting the extension is not required, the url is correctly configured there otherwise you would be able to login. Could you check the value of the base tag in the html page. (edit: @kevin beat me to it)

Base href is correct and points to <base href="">. If there was a problem with the base href, no scripts/images would have been loaded and as you can see by inspecting the load timeline, everything loads correctly.

[root@passbolt passbolt]# git status
On branch master
Untracked files:
(use “git add …” to include in what will be committed)

nothing added to commit but untracked files present (use “git add” to track)

No files were modified (why would I?)

settings.json returns:

{“header”:{“id”:“17bb400c-147e-4f2d-be59-034aa73e891f”,“status”:“success”,“servertime”:1525769267,“title”:“app_settings_index_success”,“message”:“The operation was successful.”,“url”:"/settings.json",“code”:200},“body”:{“app”:{“version”:{“number”:“2.0.5”,“name”:“Everyday Struggle”},“url”:“",“debug”:0,“server_timezone”:“UTC”,“image_storage”:{“public_path”:“img/public”}},“passbolt”:{“edition”:“ce”,"plugins”:[]}}}

The only reference to localhost can be seen in app/bundles/passbolt.js:


Ok guys I followed the installation guide and used proposed nginx configuration and it started working properly. Sorry for bothering you.

No problem @michalz, we’re glad you figured it out.

This topic was automatically closed 5 days after the last reply. New replies are no longer allowed.