Solutions to common problems
Determine root causes
Most likely the errors you face are related to your server configuration settings (server parameters/security policies/proxy params). To get a better idea on what could be causing them you can enable the logs in your Server or Client side.
Server side logs
1. Enable the server logs
Perfecty Push > Settings > Self-hosted server and use the
warning level in the
Log level option.
2. Check the logs
If the Log driver is
PHP - error_log(), you can see the logs in your CPanel or Server administration logs section. Please read this post in Stackoverflow
If the Log driver is
Database, the logs can be found in
Perfecty Push > Logs.
Look for any related information when your problem happens.
Client side logs
1. Enable the client logs
To find any potential issues, you need to activate the
Enable client logs option in
2. Ckeck the logs
To view the logs in Chrome you need to activate the Developer tools in
Main menu > More tools > Developer Tools > Console. Once opened,
reload the page and see for any potential error message.
User registration fails
If you act as an end user and opt-in for Push Notifications, the browser is registered in your website
and it should be listed in the users list in
Perfecty > Users.
However, in some cases this registration process fails because your server doesn't allow the
*js.php extension files.
If you open the Developer tools in Chrome via
Chrome > More tools > Developer tools, you see something like this:
.js.php extension is needed to inject the Service Worker Scope headers in
Have in mind that this is also the same file extension used by OneSignal.
For better performance we recommend enabling the
gmp extension (GNU Multiple Precision).
Please read How to improve performance.
How to install the gmp extension
In Ubuntu you would do:
sudo apt-get install php7.2-gmp # then restart apache with sudo service apache2 restart # or php-fpm (nginx) sudo service php-fpm restart
Cannot generate the VAPID keys automatically
This happens if you have PHP <= 7.2 and miss the
gmp extension. Perfecty Push will be disabled until you install the
gmp extension or generate the keys manually.
1. Install the gmp extension
Follow the instructions above, and then deactivate/activate the plugin from the WordPress plugin UI. This will generate the keys automatically for you.
2. Generating the VAPID keys manually using
From your WordPress server run:
openssl ecparam -genkey -name prime256v1 -out private_key.pem openssl ec -in private_key.pem -pubout -outform DER|tail -c 65|base64|tr -d '=' |tr '/+' '_-' > public_key.txt openssl ec -in private_key.pem -outform DER|tail -c +8|head -c 32|base64|tr -d '=' |tr '/+' '_-' > private_key.txt cat private_key.txt cat public_key.txt
Once you've created the keys, set those values in Perfecty Push > Settings > Vapid Private Key / Vapid Public Key.
However, the recommended solution is to install and enable the
The VAPID keys are missing in Perfecty Push. Generate the VAPID keys.
This is due to two reasons:
- You use PHP 7.2 and you didn't have the
gmpextension enabled, however now you have it.
- You have deleted the VAPID keys from the Settings.
In any case, you can generate them automatically by deactivating/activating your plugin from the WordPress plugin UI (this won't remove your data).
Conflicts with external Service Workers
Read the section Conflict Resolution