This thread is resolved. Here is a description of the problem and solution.
Problem: You are experiencing an issue where the translation jobs queue is empty despite showing 20 pages, and you receive emails about 'Overdue translation jobs report' but see 'no data' in the backend. The translations queue is also empty. Solution: The problem is due to a collation mismatch between the default WordPress tables and the WPML tables. To resolve this, follow these steps: 1. Ensure you have a full database backup before making changes. 2. Check the current collation settings of the relevant tables using these commands:
SHOW FULL COLUMNS FROM wp_icl_languages;
SHOW FULL COLUMNS FROM wp_posts;
SHOW FULL COLUMNS FROM wp_icl_string_packages;
SHOW FULL COLUMNS FROM wp_icl_translation_batches;
3. Update the collation of all WPML tables to match the WordPress default (`utf8mb4_unicode_520_ci`) by executing the following `ALTER TABLE` commands:
ALTER TABLE `wp_icl_background_task` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
... 4. Optionally, generate a dynamic list of `ALTER TABLE` commands for all WPML tables using this SQL query:
SELECT CONCAT('ALTER TABLE `', table_name, '` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;') FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name LIKE '%_icl_%';
5. Apply these changes during off-peak hours to minimize impact, focusing on key tables like `wp_icl_languages`, `wp_icl_string_packages`, and `wp_icl_translation_batches`.
If this solution does not resolve your issue or seems irrelevant due to being outdated or not applicable to your case, we recommend opening a new support ticket. We also highly advise checking related known issues at https://wpml.org/known-issues/, verifying the version of the permanent fix, and confirming that you have installed the latest versions of themes and plugins. For further assistance, please visit our support forum at WPML Support Forum.
This is the technical support forum for WPML - the multilingual WordPress plugin.
Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.
Background of the issue:
I am trying to add posts/pages to translation in Translation Management -> Translation Dashboard. After doing this, I go to 'Translation jobs', but the translation jobs queue is empty. It shows 20 pages, but no data is visible. I also receive emails with 'Overdue translation jobs report', but the backend shows 'no data'. Additionally, the Translations queue is empty.
Symptoms:
The translation jobs queue is empty despite showing 20 pages. Emails are sent with 'Overdue translation jobs report', but the backend displays 'no data'. The Translations queue is also empty.
Questions:
Why is the translation jobs queue empty despite showing 20 pages?
Why am I receiving 'Overdue translation jobs report' emails when the backend shows 'no data'?
Languages: English (English )German (Deutsch )French (Français )
Timezone: Europe/Zagreb (GMT+02:00)
This has been escalated to our 2nd tier team team and may take some debugging time, I'll get back to you as soon as I have any news or questions for you.
Languages: English (English )German (Deutsch )French (Français )
Timezone: Europe/Zagreb (GMT+02:00)
The issue is caused by a collation mismatch in your database, which results in the following error:
WordPress database error Illegal mix of collations for operation 'UNION' for query (
SELECT
translation_status.rid AS id, 'post' AS type, ...
This occurs because the default WordPress tables use `utf8mb4_unicode_520_ci`, while WPML tables are currently using `utf8mb4_unicode_ci`. This difference causes conflicts when executing queries that join data from both sets of tables. The solution is to align the collation of WPML tables with the WordPress default.
Make sure a full database backup is taken before proceeding.
1. Check the current collation settings of the relevant tables:
SHOW FULL COLUMNS FROM wp_icl_languages;
SHOW FULL COLUMNS FROM wp_posts;
SHOW FULL COLUMNS FROM wp_icl_string_packages;
SHOW FULL COLUMNS FROM wp_icl_translation_batches;
2. Execute the following `ALTER TABLE` commands to update the collation of all WPML tables to `utf8mb4_unicode_520_ci`:
ALTER TABLE `wp_icl_background_task` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_content_status` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_core_status` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_flags` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_languages` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_languages_translations` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_links_post_to_post` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_links_post_to_term` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_locale_map` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_message_status` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_mo_files_domains` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_node` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_reminders` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_string_batches` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_string_packages` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_string_positions` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_string_status` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_string_translations` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_strings` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_translate` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_translate_job` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_translation_batches` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_translation_downloads` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_translation_status` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_translations` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
ALTER TABLE `wp_icl_translations_copy` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
3. If needed, you can generate this list dynamically using the following SQL:
SELECT CONCAT('ALTER TABLE `', table_name, '` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;')
FROM information_schema.tables
WHERE table_schema = DATABASE() AND table_name LIKE '%_icl_%';
4. It is recommended to apply these changes during off-peak hours as the process is resource-intensive. At a minimum, apply the change to:
Let me know if the issue persists after the changes.
Manage Cookie Consent
We use cookies to optimize our website and services. Your consent allows us to process data such as browsing behavior. Not consenting may affect some features.
Functional
Always active
Required for our website to operate and communicate correctly.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
We use these to analyze the statistics of our site. Collected information is completely anonymous.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
These cookies track your browsing to provide ads relevant to you.