Error Messages
- A problem was encountered while attempting to upload your file
- Allowed memory size of … bytes exhausted
- Call to undefined function: imagettftext()
- Warning: Cannot modify header information
- Can’t open file: exp_online_users.MYI
- Client does not support authentication protocol requested by server
- ExpressionEngine has detected the modification of a core file
- MySQL Error 1366: Incorrect string value
- MySQL Error 1064: You have an error in your SQL syntax
- PHP Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002]
- Missing Encryption Keys
- MySQL Error 1030: Got error 28
- No Suitable Nodes Available
- Supplied argument is not a valid MySQL-Link resource
- Unable to perform the SQL queries needed to install this program.
- Unable to receive your comment at this time
- Cannot Fetch Current ExpressionEngine Version
- Error On View Template
- You are not authorized to perform this action
A problem was encountered while attempting to upload your file
When trying to upload a file, ExpressionEngine returns the following error: “A problem was encountered while attempting to upload your file.”
Troubleshooting File Upload Issues
This error is usually caused by insufficient permissions or incorrect configuration:
- The Upload Directory needs sufficient permissions for PHP to write files to the filesystem. See File Permissions for details.
- The error can also occur if ExpressionEngine could not copy or move the uploaded file from the temporary upload directory, as specified by the server. The upload directory needs appropriate permissions.
- In a similar vein, the error may be triggered if there is insufficient disk space available. A zero byte file may result in this case.
- In
Files
, a full server path must be provided in the Server Path to Upload Directory preference. This is neither a relative path nor a URL. If the exact path is not known contact the host or server administrator to obtain that information. - In some cases this error has been reported due to a trailing slash (/) at the end of the directory name under
Files
(or Gallery or Forum Preferences).
Allowed memory size of … bytes exhausted
ExpressionEngine returns the following error: “Allowed memory size of … bytes exhausted.”
Troubleshooting memory issues
This error indicates that a PHP process on the server ran out of memory. The amount of available memory for PHP will vary from server to server. ExpressionEngine 2.0 requires a minimum of 32MB memory allocated to PHP.
The solution to this error is to increase the memory limit. This would have to be done by the server administrator or host.
Call to undefined function: imagettftext()
ExpressionEngine returns the following error: “Call to undefined function: imagettftext().”
Troubleshooting
This error—and similar warnings such as “Warning: imagettftext(): Could not find/open font in …”—indicate that ExpressionEngine is running on a server where PHP is missing TrueType font support. Resolving this problem requires contacting the host support or server admin and have them upgrade to a PHP version that has such support compiled in.
If that is not an option, Use TrueType Font for Captcha? should be set to No under Settings --> CAPTCHA
or CAPTCHAs should be disabled altogether.
Warning: Cannot modify header information
ExpressionEngine returns the following warning: “Cannot modify header information.”
Troubleshooting
This error is often caused by blank lines or superfluous white space in a PHP file before the opening or after the closing PHP tag. The offending PHP file is usually named in the PHP error message.
This error can also be triggered by another PHP error, in which case the originating error should be resolved first.
Can’t open file: exp_online_users.MYI
ExpressionEngine returns the following error: “Can’t open file: exp_online_users.MYI.”
Troubleshooting
In these cases, MySQL usually returns “Error 145” which means that a “table is marked as crashed and should be repaired.” This is usually caused by a file associated with that particular database becoming corrupted so that the database needs to be repaired.
Repairing the database through ExpressionEngine
If ExpressionEngine’s Control Panel is still accessible, the database can be repaired via the built-in SQL Manager at Tools --> Utilities --> SQL Manager
. Select the tables to repair, then choose Repair selected tables at the bottom and click Submit.
Repairing the database by other means
If the Control Panel is no longer accessible the database must be repaired by some other means. This can be done by using the MySQL command line tools, or some external application such as phpMyAdmin. If these attempts fails, or the error occurs with some frequency, the database administrator should be notified.
Client does not support authentication protocol requested by server
ExpressionEngine returns the following error: “Client does not support authentication protocol requested by server.”
Troubleshooting
Running MySQL v4.1 or newer, the follow error is returned:
Warning: mysql_pconnect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client
New versions of MySQL use an authentication protocol based on a password hashing algorithm that is incompatible with that used by older (pre-4.1) clients. MySQL can be configured to use the old algorithm, however. The MySQL documentation has more information on the issue.
ExpressionEngine has detected the modification of a core file
ExpressionEngine displays the error: One or more core files have been altered
Troubleshooting
This means that one of the files that runs ExpressionEngine like the front-end index.php file or your control panel admin.php file has changed on disk. You will see this message after intentionally modifying those files, to change the system path for instance, or when updating a major version that instructs you to replace those files.
However, ExpressionEngine is careful to alert you since these files are executed by the server every time that ExpressionEngine runs. If your server is compromised, these types of files are common targets for hackers, since they know they will be requested frequently.
If you made these changes yourself, you can click Accept and the modifications will be accepted by the system. If you did not alter the files yourself, it may indicate a hacking attempt. Check the files listed for any suspicious contents (JavaScript or iFrames). If you do find that your server was compromised or are unsure of how to check or what to do about it, please contact your host and a web professional.
MySQL Error 1366: Incorrect string value
ExpressionEngine returns the following error: “MySQL Error 1366: Incorrect string value: ‘xF0x9Fx98x9B’ for column ‘field_id_1’.”
Troubleshooting
This error happens when ExpressionEngine tries to save content with an emoji to the database, and that database is not using the utf8mb4
character set. Use our Emoji Support add-on to update your database.
MySQL Error 1064: You have an error in your SQL syntax
Troubleshooting
This happens when the query has a syntax error. However, if you can’t see an obvious syntax error and the query runs in other environments, it may be a server configuration issue. Make certain MySQL is not running with ANSI_QUOTES on.
PHP Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002]
This may happen when attempting to use the CLI when the ExpressionEngine intallation is running on MAMP.
Troubleshooting
Check following configuration values in config.php: hostname, port. Hostname may need to be 127.0.0.1
instead of localhost
and the port may differ from the default 3306. You can check the port used in the MAMP MySQL settings. For example:
$config['database'] = array(
'expressionengine' => array(
'hostname' => '127.0.0.1',
'database' => 'EEdb',
'username' => 'root',
'password' => 'root',
'dbprefix' => 'exp_',
'char_set' => 'utf8mb4',
'dbcollat' => 'utf8mb4_unicode_ci',
'port' => '8889'
)
);
Missing Encryption Keys
ExpressionEngine displays the error: You do not have value set for [encryption_key/session_crypt_key] in your config.php. This may leave your install open to security vulnerabilities. Restore the keys or see this troubleshooting article in the user guide for help.
Troubleshooting
This means you are missing the corresponding item from your system/user/config/config.php
file. This shouldn’t occur, and generally means that someone modified your file or removed those values by accident. They will look like this:
$config['encryption_key'] = '26791dcd5c7cc9e569cc05b16b96235985cc9f03';
$config['session_crypt_key'] = 'd9e776dc9a5de0cd83e7c76a76756daa64ff4b8b';
Since some content in your database or generated by third-party add-ons may already be encrypted using these keys, it would be best to restore them from a backup. If you do not have a backup available, or it is also missing these keys, you should generate new keys. Do NOT use the random samples above, use the tools below to create a new random string.
Generating new encryption keys
Using openssl
:
openssl rand 128 | openssl dgst -sha1
Using php
from the command line:
php -r 'echo sha1(uniqid(random_int(-PHP_INT_MAX, PHP_INT_MAX), TRUE));echo "\n";'
For Windows systems, if you have not modified your environment, you will need to supply the path to php.exe:
C:\PHP7\php.exe -r 'echo sha1(uniqid(random_int(-PHP_INT_MAX, PHP_INT_MAX), TRUE));echo "\r";'
MySQL Error 1030: Got error 28
ExpressionEngine returns the following error: “MySQL Error 1030: Got error 28.”
Troubleshooting
Error 28 means “No space left on device”. This is typically caused by the database server not having sufficient disk space to perform the requested query. Even if there seems to be enough space left, the query might have to create temporary tables which require more disk space than is currently available.
Reducing the size of the database can often help: one easy way to do this is by clearing out Template Revisions. (If Template Revisions are not needed, that feature can be disabled altogether under Settings --> Template Settings
.) If MySQL runs on localhost, increasing the available disk space by deleting other files such as the cache might also work. In all cases the database administrator should be notified of the issue.
No Suitable Nodes Available
“No Suitable Nodes Available” appears when loading an ExpressionEngine page.
Repair and Optimize the Database Tables
This is a database error and can be repaired by optimizing and repairing your database tables </cp/tools/data/sql_manage_tables>.
Supplied argument is not a valid MySQL-Link resource
ExpressionEngine returns the following warning: “Supplied argument is not a valid MySQL-Link resource.”
Troubleshooting
This error is usually returned in one of two cases:
The MySQL server is down
This can only be resolved by the database administrator who should be contacted immediately.
MySQL has run out of database connections
If the server is working properly, MySQL might be running out of database connections. If that’s the case, ensure that the database is using non-persistent connections by adding the following line to config.php:
$config['db_conntype'] = "0";
Unable to perform the SQL queries needed to install this program.
MySQL returns the error message “Unable to perform the SQL queries needed to install this program.”
Troubleshooting
This error most frequently occurs with some versions of MySQL 5. ExpressionEngine requires the following database privileges:
ALTER
CREATE
DELETE
DROP
INSERT
SELECT
UPDATE
Depending on the configuration of the MySQL server, these permissions may have to be granted explicitly. Also, ExpressionEngine does not work in STRICT_TRANS_TABLES mode. The MySQL manual will have more information on the subject.
Unable to receive your comment at this time
When trying to submit a comment ExpressionEngine returns the following error message: “Unable to receive your comment at this time.”
Troubleshooting Comments
This message appears when a user tries to submit a comment identical to an already-existing one. This anti-spam measure can be turned off with the Deny Duplicate Data? preference under Settings --> Security & Privacy
.
Cannot Fetch Current ExpressionEngine Version
ExpressionEngine displays the error: An unexpected error occurred attempting to download the current ExpressionEngine version number.
Troubleshooting
Ensure this install has access to the internet and has no restrictions accessing update.expressionengine.com. Some servers may allow/block the outbound sites that scripts can connect to.
Ensure cURL is installed and enabled in your PHP installation.
View the contents of system/user/cache/current_version
. If you see an error similar to “Unknown SSL protocol error”, you may need to upgrade PHP to a version that supports connecting to sites over modern SSL protocols.
If you’re still getting the error after trying the above and deleting the current_version
file, use a support channel for more helps and include the contents of your current_version
file.
Error On View Template
Loading a template results in Parse error: syntax error, unexpected T_STRING in path/to/system/core/core.functions.php(626) : eval()’d code on line 1
Troubleshoot Template
This indicates an error in the template being loaded, at the line indicated at the error.
One common cause is whitespace in Javascript code that is causing the Javascript to be parsed as a conditional.
<script>
function foo(){if(cond...) ...code... };
</script>
Add whitespace around the curly bracket to fix the error:
<script>
function foo() { if (cond...) ...code... };
</script>
You are not authorized to perform this action
When accessing certain locations within the control panel ExpressionEngine returns the following error message: “You are not authorized to perform this action”.
Troubleshooting Authorization Issues
Logging into the Control Panel
Only members of the “Superadmin” Role can access the Control Panel under all circumstances. Users not assigned a Superadmin role, need to have appropriate role permissions to access the Control Panel. By default, ExpressionEngine expects user’s browsers to send a valid IP address and User Agent information. This is meant to help prevent hacking attempts. Some firewalls and other third-party software installed on the user’s computer might block this information.
This requirement can be disabled:
If the Control Panel can be accessed, it is possible to simply turn off the “Require IP Address and User Agent for Login?“ and “Require IP Address and User Agent when receiving comments?“ settings in Admin › Security and Session Preferences.
The settings can also be overridden by adding the following line to the config.php file:
$config['require_ip_for_login'] = "n";
Banned or Block listed Users
This error will also occur for users that have been banned, or are being blocked by the Block list. It is possible to block particular User Agents or domain names under Modules › Block/Allow in the Control Panel and specific IP addresses under Admin › User Banning.