Troubleshooting the 'Class PLL_Lingotek Not Found' and Other Common Polylang Fatal Errors
Content
If your WordPress site suddenly crashes with a fatal error after a Polylang update or migration, you're not alone. A recurring and particularly disruptive issue involves an error message stating Uncaught Error: Class 'PLL_Lingotek' not found. This guide will explain why this and similar errors happen and provide the most effective solutions to get your site back online.
Understanding the Common Polylang Fatal Errors
Based on widespread community reports, the most frequent critical errors are:
- Class 'PLL_Lingotek' not found: This error occurs in
.../polylang/modules/lingotek/load.phpon line 13. It often happens after an automatic plugin update to versions 3.3.1 or 3.4.3 and prevents access to both the frontend and backend of the site. - TypeError: Argument must be of type string, null given: This error can appear in various files, often related to WordPress's translation functions (
WP_Translation_Controller::set_locale()), especially after a core WordPress update (e.g., to version 6.6.1 or 6.7). - Class 'WP_SyntexPolylangRESTAPI' not found: This error typically surfaces after a site migration or merge using a backup tool like BlogVault, indicating a problem with how the plugin's files were transferred.
- Class 'PLL_Model' not found / Invalid argument supplied for foreach(): These errors often point to incomplete plugin files or corrupted data within the Polylang configuration.
The root cause is usually incomplete or corrupted plugin files. An update might be interrupted, a migration might not copy all necessary files, or a server's file permissions could prevent proper installation. The 'Lingotek' module is a common failure point because if its main class file is missing, the entire plugin cannot load.
How to Fix These Fatal Errors
Immediate Action: Regain Access to Your Site
If you cannot access your WordPress admin dashboard, you must deactivate Polylang manually. You can do this by:
- Using your hosting control panel's file manager.
- Connecting via FTP/SFTP.
- Renaming the Polylang plugin folder from
polylangto something likepolylang_off. This is located in/wp-content/plugins/.
This will disable the plugin and should restore access to your site's admin area.
Solution 1: Perform a Clean Reinstall (Most Effective Fix)
A simple reinstall often resolves the issue by replacing any missing or corrupted files.
- In your WordPress admin, go to Plugins.
- Delete the currently installed Polylang plugin.
- Go to Add New > Search Plugins, search for "Polylang", and install it fresh.
- Activate the plugin. Your language settings are stored in your database and should remain intact.
Solution 2: Manually Install a Previous Version (If a Clean Reinstall Doesn't Work)
If the latest version is causing a conflict, you can temporarily roll back to a known stable version.
- Visit the Polylang Advanced View on WordPress.org.
- Scroll down to "Previous Versions".
- Select and download an earlier version (e.g., 3.3).
- In your WordPress admin, go to Plugins > Add New > Upload Plugin and upload the downloaded
.zipfile to install it.
Solution 3: Check for Conflicts After a Migration
For errors like Class 'WP_SyntexPolylangRESTAPI' not found after using BlogVault or another migration tool:
- Ensure the migration process fully completed and all files were transferred correctly.
- Follow Solution 1 to delete and reinstall Polylang on the migrated site. This ensures all necessary files are present.
- Clear any caching on your site and server after the reinstall.
When to Look Deeper:
If the errors persist after a clean reinstall, the problem might be a conflict with your theme, another plugin, or a server configuration.
- Switch temporarily to a default WordPress theme (like Twenty Twenty-Four).
- Deactivate all other plugins except Polylang.
- Reactivate your theme and plugins one by one, checking your site after each, to identify the source of the conflict.
Conclusion
The "Class PLL_Lingotek not found" error is almost always resolved by a clean and complete reinstallation of the Polylang plugin. This process replaces any missing files that are causing the fatal error. If you continue to experience issues, systematically checking for conflicts with other parts of your site is the recommended next step.
Related Support Threads Support
-
Fatal error during Plugin Upgradehttps://wordpress.org/support/topic/fatal-error-during-plugin-ugrade/
-
Errors from conflict with Polylang after WP upgrade to 6.4https://wordpress.org/support/topic/errors-from-conflict-with-polylang-after-wp-upgrade-to-6-4/
-
Install polylang I receive fatal errorhttps://wordpress.org/support/topic/install-polylang-i-receive-fatal-error/
-
critical error when using the pluginhttps://wordpress.org/support/topic/critical-error-when-using-the-plugin/
-
PHP Warning: Undefined array key termshttps://wordpress.org/support/topic/php-warning-undefined-array-key-terms-2/
-
Fatal Error on WP login pagehttps://wordpress.org/support/topic/fatal-error-on-wp-login-page/
-
table-string.php. Error message: Uncaught TypeError: stripos()https://wordpress.org/support/topic/table-string-php-error-message-uncaught-typeerror-stripos/
-
Invalid argument supplied for foreach()https://wordpress.org/support/topic/invalid-argument-supplied-for-foreach-193/
-
Got E_ERROR and couldn’t enter to my dashboard normallyhttps://wordpress.org/support/topic/got-e_error-and-couldnt-enter-to-my-dashboard-normally/
-
Polyland Fatal Error since 09/01/23https://wordpress.org/support/topic/polyland-fatal-error-since-09-01-23/
-
Fatal Error open_basedir restrictonhttps://wordpress.org/support/topic/fatal-error-open_basedir-restricton/
-
PHP fatal error in pluginhttps://wordpress.org/support/topic/php-fatal-error-in-plugin/
-
Fatal error | Polylang + Divi + Woocommercehttps://wordpress.org/support/topic/fatal-error-polylang-divi-woocommerce/
-
Fatal error after upgrade to WordPress 6.6.1https://wordpress.org/support/topic/fatal-error-after-upgrade-to-wordpress-6-6-1/
-
Install and Run Wizard Fatal Errorhttps://wordpress.org/support/topic/install-and-run-wizard-fatal-error/
-
Can’t login into backend anymorehttps://wordpress.org/support/topic/cant-login-into-backend-anymore/
-
WordPress caught an error with Polylanghttps://wordpress.org/support/topic/wordpress-caught-an-error-with-polylang/
-
Version 3.4 Triggered Errorhttps://wordpress.org/support/topic/version-3-4-triggered-error/
-
Fatal Errorhttps://wordpress.org/support/topic/fatal-error-4244/
-
Version 3.4 invalid argument errorhttps://wordpress.org/support/topic/version-3-4-invalid-argument-error/
-
Problem with Polylang after merging my site with blogvaulthttps://wordpress.org/support/topic/problem-with-polylang-after-merging-my-site-with-blogvault/
-
How to decommission a failed polylang instancehttps://wordpress.org/support/topic/how-to-decommission-a-failed-polylang-instance/
-
Error when I open a product pagehttps://wordpress.org/support/topic/error-when-i-open-a-product-page/
-
Polylang 3.3.1. breaks my websitehttps://wordpress.org/support/topic/polylang-3-3-1-breaks-my-website/
-
Fatal error due to missing method get_data_from_new_post_translation_requesthttps://wordpress.org/support/topic/fatal-error-due-to-missing-method-get_data_from_new_post_translation_request-in/
-
Polylang Fatal Error since 09/01/23https://wordpress.org/support/topic/polylang-fatal-error-since-09-01-23/
-
Polylang Causes Fatal Errorshttps://wordpress.org/support/topic/polylang-causes-fatal-errors/
-
Fatal error: Uncaught TypeErrorhttps://wordpress.org/support/topic/fatal-error-uncaught-typeerror-39/
-
Un errore di E_ERROR è stato causato nella linea 13 del filehttps://wordpress.org/support/topic/un-errore-di-e_error-e-stato-causato-nella-linea-13-del-file/
-
The latest version of the plugin breaks the sitehttps://wordpress.org/support/topic/the-latest-version-of-the-plugin-breaks-the-site/
-
PLUGIN ERRORhttps://wordpress.org/support/topic/plugin-error-206/
-
Problem with Polylang after merging my site with blogvaulthttps://wordpress.org/support/topic/problem-with-polylang-after-merging-my-site-with-blogvault-2/
-
Plugin causes critical error when translating postshttps://wordpress.org/support/topic/plugin-causes-critical-error-when-translating-posts/