Troubleshooting¶
In this article:
- Check logs
- Check system requirements
- Scheduled Jobs are not working
- Running rebuild from CLI
- EspoCRM is not loading after upgrade
- MySQL error: The server requested authentication method unknown to the client
- Emails are not being fetched
- Delay in fetching emails
- Admin password is lost, can't log in
- MySQL error: MySQL can only use 61 tables in a join
Check logs¶
This is the most important step in finding out the problem. There are two main logs you need to check:
- EspoCRM log;
- Webserver error log.
EspoCRM log¶
EspoCRM log files are located in {ESPO_ROOT}/data/logs/
directory. Most errors are logger there.
Apache error log¶
For Ubuntu server, the apache error log is located at /var/log/apache2/error.log
. The location of log files can be different on other systems.
Debug mode¶
In some cases it can be reasonable to enable debug mode for the logger. It will print more information into the log.
To enable debug mode for the loghger, edit the file data/config-internal.php
(or data/config.php
) and set the value of the logger.level parameter to DEBUG
:
'logger' => [
...
'level' => 'DEBUG',
]
Don't forget to revert the mode back (WARNING
or ERROR
) after the problem is solved.
Backtrace printing¶
Enablind trace printing will print a backtrace to the log for every thrown exception. Can be very useful for debuging occurred errors.
In data/config-internal.php
(or data/config.php
):
'logger' => [
...
'printTrace' => true,
]
Check system requirements¶
At Administration > System Requirements. It's important that you have all required extensions installed.
Scheduled jobs are not working¶
Problem #1: Your crontab is not configured¶
1. Login via SSH to your server.
2. Configure your crontab by following these steps.
Note: Crontab should be configured under web-server user, e.g. crontab -e -u www-data
.
3. Wait for a while and check Scheduled Jobs to see if any jobs were executed (see a Log panel).
Problem #2. Crontab is configured, but Scheduled Jobs are not working¶
To make sure there are no errors when cron is running, try to run the cron command in a terminal:
1. Login via SSH to your server.
2. Go to the directory where EspoCRM is installed. E.g. for /var/www/html/espocrm
directory the command is:
cd /var/www/html/espocrm
3. Run the crontab command:
php cron.php
Note: It's better to execute under web-server user. If you are logged in as root, the command should be (e.g for Ubuntu):
sudo -u www-data php cron.php
where www-data
is a web-server user.
4. If there are no errors, check Scheduled Jobs to see if any job was executed (see a Log panel).
Running rebuild from CLI¶
Sometimes you need to run rebuild from the command line interface when the application is not loading.
php rebuild.php
EspoCRM is not loading after upgrade¶
Check logs for errors. Googling an error message may help figure out the cause of the problem.
Often the problem is caused by a webserver PHP version being lower than the minimin required.
File permissions can be set to not proper values on some shared hostings after upgrade.
Check permissions of the files:
public/index.php
public/api/v1/index.php
They must be 644. If any of those files have permission 664, you need to change it to 644. Use your hosting's control panel or chmod command.
chmod 644 /path/to/file
More information about file permissions can be found here.
MySQL error: The server requested authentication method unknown to the client¶
MySQL 8.0.4 has changed default authentication method to caching_sha2_password
which is not supported by PHP. This issue can be solved by this solution.
Emails are not being fetched¶
- Make sure cron is running. You will see the error notification on the main administration page if cron is not running.
- Check EspoCRM log (data/logs) and server logs for errors.
- Check log at Administration > Scheduled Job > Check Personal Email Accounts. Make sure there are no records with failed status.
- Check log at Administration > Scheduled Job > Check Group Email Accounts. Make sure there are no records with failed status.
Delay in fetching emails¶
The following configuration will speed up your email fetching (and other background processes):
- Cron should be configured to execute once a minute or more often. More details here.
- The Jobs Run in Parallel parameter should be enabled in Administration > Jobs > Settings (in the top-right corner). More details here.
Admin password is lost, can't log in¶
As of v5.8.3.
Run the following command in CLI:
php command.php set-password [username]
where [username]
is a user name, e.g. admin
.
MySQL error: MySQL can only use 61 tables in a join¶
Full error message: General error: 1116 Too many tables; MySQL can only use 61 tables in a join.
Any of the following actions may solve the problem.
- Remove unused many-to-one and one-to-one relationships (if you have such).
- Disable link-multiple for some many-to-many relationships of the problem entity type.
- Set
noJoin
parameter (totrue
) for some belongsTo links. Example. - Set currencyNoJoinMode (
'currencyNoJoinMode' => true,
indata/config.php
). With this mode enabled, you will need to clear cache (in Espo) every time you change currency rates. (as of v7.3)