This thread is resolved. Here is a description of the problem and solution.
Problem: The client was experiencing database errors indicating a missing table 'nsln.wqepy_icl_mo_files_domains' after exporting and importing their website. Additionally, there was a PHP notice about translation loading for the 'wp-grid-builder' domain being triggered too early. Solution: We recommended checking a related support forum post for a potential solution. After confirming the issue persisted, we requested and received access credentials to the site, ensuring the client had a full site backup. We then added the missing table, resolving the issue. The steps to add the table included installing the Adminer plugin, exporting the SQL code for the missing table from a test site, and running the SQL command on the client's site with the correct database prefix.
If this solution does not resolve your issue, or if it seems outdated or irrelevant to your case, we highly recommend 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. If further assistance is needed, please do not hesitate to open a new support ticket 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 recently exported and imported the website using wpallimport/wpallexport. I am trying to resolve database errors that appear in the debug.log. I find these messages in the debug.log: [25-May-2025 16:29:31 UTC] WordPress database error Table 'nsln.wqepy_icl_mo_files_domains' doesn't exist for query SELECT file_path, domain FROM wqepy_icl_mo_files_domains WHERE domain IN ('default','bricks','acf','installer','bricks-advanced-themer','wp-all-import-pro','wp_all_import_user_add_on','wpml-string-translation','sitepress','wpml-translation-management','wpml-import','acfml','WPML','automatic-css','bricksextras','wpai-acf-add-on','wpai-user-add-on','wpml-all-import','sitepress-multilingual-cms','wp-seo-multilingual','easy-code-manager','WordPress','wpml','slick-gallery-migration','gutenberg-2360','sirsc','kadence-blocks-pro','kadence-blocks','gutenberg-12912','acf-field-group-0','gutenberg-13493','gutenberg-13339','gutenberg-13274','gutenberg-13461','gutenberg-13290','gutenberg-13270','gutenberg-13323','gutenberg-13453','wp-grid-builder','post-type-switcher','slick-slider','term-management-tools','wpgb-bricks','bricksed','scorg','meta-box','gutenberg-11935','gutenberg-11955') AND file_path REGEXP '((/|-)en_US(.|-))+' made by require('wp-admin/admin-ajax.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, WPML_ST_Initialize->run, WPML_ST_Initialize->loadEarlyHooks, WPMLSTTranslationFileHooks->install, WPML_Action_Filter_Loader->load, WPML_Action_Filter_Loader->load_factory_or_action, WPML_Action_Filter_Loader->load_factory, WPML_Action_Filter_Loader->run_factory, WPMLSTMOHooksPreloadThemeMoFile->add_hooks, WPMLSTMOHooksPreloadThemeMoFile->getMOFilesByDomainsAndLocale [25-May-2025 16:29:31 UTC] PHP Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the <code>wp-grid-builder</code> domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the <code>init</code> action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /Users/andre/Herd/nsln/wp-includes/functions.php on line 6121. Link to a page where the issue can be seen:
Symptoms:
WordPress database error indicating a missing table 'wqepy_icl_mo_files_domains'. PHP Notice about translation loading for 'wp-grid-builder' domain being triggered too early.
Questions:
Can the cause of the error be in not having migrated the .mo or .po files?
Thanks so much Carlos! I'm sorry bother you with one more question:
Could you tell me how you added the missing table? I would like to add the code to my local setup..
Hey, I'm happy to hear that the issue was solved 🙂
I can't share the code here, but here are the steps I followed:
- I installed WPML in a fresh WordPress installation (a test site)
- Then installed the Adminer plugin: https://wordpress.org/plugins/pexlechris-adminer/
- Once the plugin was active, I went to Tools -> Database Adminer -> Click on the button to open the database
- On the top of the left column, you will find a few options, including the 'export' one -> In that option, I selected the missing table and got the code to create it.
- Once I got the SQL code to create the table, I installed Adminer on your site, and instead of exporting, I used the 'SQL command' option to run the SQL (I made sure to adjust the database prefix to match your site's DB prefix), and the table was created.
We are here to help. If you need any assistance, don't hesitate to contact us!
Oh no, now I find this error message in my debug.log:
WordPress database error Table 'admin_nsl.gVc7u.wqepy_icl_string_packages' doesn't exist for query SELECT SQL_CALC_FOUND_ROWS jobs.job_id, jobs.translator_id, jobs.job_id, jobs.batch_id, jobs.element_type_prefix FROM (SELECT s.translator_id,
j.job_id,
IF(p.post_type IS NOT NULL, 'post', 'package') AS element_type_prefix,
p.post_type AS post_type,
s.batch_id
FROM wqepy_icl_translation_status s
JOIN wqepy_icl_translations t
ON t.translation_id = s.translation_id
JOIN wqepy_icl_translate_job j
ON j.rid = s.rid
AND j.revision IS NULL
JOIN wqepy_icl_translations o
ON o.trid = t.trid
AND o.language_code = t.source_language_code
JOIN (SELECT ID, post_type FROM wqepy_posts
UNION ALL
SELECT ID, NULL as post_type FROM wqepy_icl_string_packages) p
ON o.element_id = p.ID
AND ( o.element_type = CONCAT('post_', p.post_type) OR p.post_type IS NULL )
JOIN wqepy_icl_translate tr_rows
ON tr_rows.job_id = j.job_id
AND tr_rows.field_type = 'original_id'
AND tr_rows.field_data = o.element_id
WHERE s.status NOT IN ( 0, 42 ) AND s.status <> 9 AND (p.post_type IS NULL OR p.post_type IN ('post','page','attachment','wp_block','wp_template','wp_template_part','wp_navigation','kadence_form','kadence_navigation','kadence_header','kadence_query_card','newsletter','nsl-projekt','professur','projekt' )) AND j.deadline_date IS NOT NULL AND s.status IN (1,2) AND j.deadline_date < '2025-05-27' AND j.deadline_date <> '0000-00-00 00:00:00'
UNION ALL
SELECT st.translator_id,
st.id AS job_id,
'string' AS element_type_prefix,
NULL AS post_type,
st.batch_id
FROM wqepy_icl_string_translations st
JOIN wqepy_icl_strings s
ON s.id = st.string_id
WHERE 1 = 0) jobs
INNER JOIN wqepy_icl_translation_batches b
ON b.id = jobs.batch_id
ORDER BY jobs.batch_id DESC, jobs.element_type_prefix, jobs.job_id DESC made by do_action_ref_array('wpml-tm-check-overdue-jobs-event'), WP_Hook->do_action, WP_Hook->apply_filters, WPML_TM_Jobs_Deadline_Cron_Hooks->send_overdue_email_report, WPML_TM_Overdue_Jobs_Report->send, WPML_TM_Overdue_Jobs_Report->get_overdue_jobs_by_manager_id, WPML_Translation_Jobs_Collection->get_jobs, WPML_Translation_Jobs_Collection->get_jobs_in_db
Is it possible that 'nsln.wqepy_icl_string_packages' are now 'nsln.wqepy_icl_string_batches'?
Hey there,
Because the ticket was set as resolved the credentials you shared were automatically removed for security reasons. I have set your next message private so you can share the credentials again and this time I will create a video for you describing step-by-step how to solve this type of problems 🙂
I created this video for you: hidden link, where you can see one way to create missing WPML tables in the database.
Please let me know if you need further assistance.
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.