Skip to content Skip to sidebar

This thread is resolved. Here is a description of the problem and solution.

Problem:
The client is experiencing intermittent 500 Internal Server Errors on pages in English and Italian. The errors often resolve upon refreshing but recur and worsen over time. The client suspects issues with the wp_icl_strings or wp_icl_string_translations tables, or a server resource limit being exceeded during translation lookup. The string scan hangs indefinitely, indicating a potential connection to the errors.
Solution:
We recommended checking the .htaccess file for any incorrect or duplicate entries that might be causing the issue. Specifically, we advised removing duplicate '# BEGIN WordPress' blocks and ensuring that custom rewrite rules for different language versions of /wp-login.php are correctly configured. Additionally, we suggested following the steps outlined in our documentation to prevent .htaccess from being overwritten with the language folder, which can be found here: https://wpml.org/faq/why-is-htaccess-getting-overwritten-with-the-language-folder-on-my-wpml-website/

If this solution does not resolve the issue or seems irrelevant due to being outdated or not applicable 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 problems persist, please open a new support ticket for further assistance.

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.

Tagged: 

This topic contains 5 replies, has 1 voice.

Last updated by Andrey 1 month, 2 weeks ago.

Assisted by: Andrey.

Author Posts
July 25, 2025 at 6:15 pm #17271942

peterS-172

Background of the issue:
Some pages in English and Italian intermittently throw a 500 Internal Server Error. The same pages often work again after a refresh – but the error keeps returning and seems to get worse over time.

🔍 What I already tried:
Deactivated various plugins

Cleared WPML cache

Used all available Troubleshooting actions under WPML > Support > Troubleshooting:

Synced taxonomies, translation statuses, ATE jobs, ghost entries, string problems, etc.

Re-scanned strings under WPML > String Translation – but:

The scan hangs indefinitely at “WPML found 55,057 strings”

I restored a backup, but the issue persists

PHP memory limit has already been increased

💡 My suspicion:
There may be a problem with the wp_icl_strings or wp_icl_string_translations tables, or a server resource limit is being exceeded during translation lookup. The fact that the string scan never completes seems directly connected to the intermittent 500 errors on translated pages.

Could you please:

Check whether my string tables are corrupted or bloated

Advise how to safely clean or reset the string translation setup without losing existing content

Help me resolve the unstable translated page behavior

I can provide admin access and logs if needed.

Thank you very much!

Symptoms:

Questions:
Some pages in English and Italian intermittently throw a 500 Internal Server Error. The same pages often work again after a refresh – but the error keeps returning and seems to get worse over time.

🔍 What I already tried:
Deactivated various plugins

Cleared WPML cache

Used all available Troubleshooting actions under WPML > Support > Troubleshooting:

Synced taxonomies, translation statuses, ATE jobs, ghost entries, string problems, etc.

Re-scanned strings under WPML > String Translation – but:

The scan hangs indefinitely at “WPML found 55,057 strings”

I restored a backup, but the issue persists

PHP memory limit has already been increased

💡 My suspicion:
There may be a problem with the wp_icl_strings or wp_icl_string_translations tables, or a server resource limit is being exceeded during translation lookup. The fact that the string scan never completes seems directly connected to the intermittent 500 errors on translated pages.

Could you please:

Check whether my string tables are corrupted or bloated

Advise how to safely clean or reset the string translation setup without losing existing content

Help me resolve the unstable translated page behavior

I can provide admin access and logs if needed.

Thank you very much!

July 28, 2025 at 2:50 am #17273598

Kor
WPML Supporter since 08/2022

Languages: English (English )

Timezone: Asia/Singapore (GMT+08:00)

Thank you for contacting WPML support. While one of my colleagues reviews your ticket, I’d like to offer some initial troubleshooting steps that may help resolve the issue sooner.

A 500 Internal Server Error usually points to a server-related issue. Please contact your hosting provider and ask them to check the server error logs for any related entries.

In the meantime, you can follow the debugging steps outlined here: https://wpml.org/documentation/support/debugging-wpml/

Once you have the results, please share them with us so we can investigate further.

July 28, 2025 at 11:55 am #17274792

peterS-172

Hi WPML Support,

we're encountering persistent problems with the String Translation module. Specifically:

The scanning process often freezes or becomes unresponsive, even when all caches are cleared.

We have 53,638+ strings registered (see attached screenshot).

Translations don’t reliably appear in Italian or English, even after saving them.

The debug.log repeatedly shows:

pgsql
Kopieren
Bearbeiten
PHP Notice: Function _load_textdomain_just_in_time was called incorrectly.
This may point to a deeper issue in how strings are registered or loaded – possibly too early in the process – but we can't identify the exact cause.

We’ve already:

Rescanned strings

Cleared transients and caches

Updated all WPML components

Could you please advise:

Whether these _load_textdomain_just_in_time notices are critical?

If our string tables might be bloated or corrupted?

Whether it’s best to disable automatic string scanning for some domains?

Thanks for your help!

Screenshot_3.png
July 28, 2025 at 4:00 pm #17276178

Andrey
WPML Supporter since 06/2013

Languages: English (English ) Russian (Русский )

Timezone: Europe/Kyiv (GMT+03:00)

Thank you for contacting WPML support.

I do not think that a 500 Internal Server Error is related to wp_icl_ database tables.

Could you please provide the contents of the .htaccess file located in the root directory of your website at the time the 500 Internal Server Error occurs? This will help me better understand the situation and suggest an appropriate solution.

July 28, 2025 at 4:24 pm #17276290

peterS-172

Thank you for your response.

As requested, I’ve attached the current .htaccess file located in the root directory of my WordPress installation. Please note that there are two identical # BEGIN WordPress blocks and a few custom rewrite rules for /wp-login.php in different languages (EN, DE, IT).

I’ve left the file unchanged for now so you can review the actual setup before I make any modifications.

The internal server error still occurs intermittently across different language versions (including IT and EN), especially when working in the admin panel or saving translated pages.

Looking forward to your advice on how to proceed.

Best regards, Peter

Ht access:

# BEGIN WordPress
# Die Anweisungen (Zeilen) zwischen „BEGIN WordPress“ und „END WordPress“ sind
# dynamisch generiert und sollten nur über WordPress-Filter geändert werden.
# Alle Änderungen an den Anweisungen zwischen diesen Markierungen werden überschrieben.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^en/wp-login.php /wp-login.php [QSA,L]
RewriteRule ^de/wp-login.php /wp-login.php [QSA,L]
RewriteRule ^it/wp-login.php /wp-login.php [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
# BEGIN ShortPixelWebp
# Die Anweisungen (Zeilen) zwischen „BEGIN ShortPixelWebp“ und „END ShortPixelWebp“ sind
# dynamisch generiert und sollten nur über WordPress-Filter geändert werden.
# Alle Änderungen an den Anweisungen zwischen diesen Markierungen werden überschrieben.

# END ShortPixelWebp

July 28, 2025 at 4:28 pm #17276293

Andrey
WPML Supporter since 06/2013

Languages: English (English ) Russian (Русский )

Timezone: Europe/Kyiv (GMT+03:00)

Thank you for your feedback, Peter.

Could you please try the following workaround and let me know if it resolves the issue?

https://wpml.org/faq/why-is-htaccess-getting-overwritten-with-the-language-folder-on-my-wpml-website/