I would need the debug.log to better understand the problem.
Please follow the instructions mentioned on this page: https://wpml.org/documentation/support/debugging-wpml/
Then, try to reproduce the issue and check your installation's **wp-content** folder to see if a file named **"debug.log"** was created (it will only be generated if a server error occurs).
If the file was created, please upload it to a platform like **Google Drive** or **Dropbox** (whichever you usually use) and share the link with me (make sure it is publicly accessible) so I can analyze it.
The lines below show are the entire debug.log file
[25-Feb-2026 16:27:10 UTC] PHP Deprecated: Invalid characters passed for attempted conversion, these have been ignored in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/kadence-blocks-pro/includes/helper-functions.php on line 25
[25-Feb-2026 16:27:10 UTC] PHP Deprecated: Invalid characters passed for attempted conversion, these have been ignored in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/kadence-blocks-pro/includes/helper-functions.php on line 27
[25-Feb-2026 16:27:40 UTC] PHP Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the
presto-player
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
init
action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/u291129052/domains/re-down.com/public_html/wp-includes/functions.php on line 6131
[25-Feb-2026 16:28:31 UTC] PHP Fatal error: Uncaught ValueError: Unknown format specifier "�" in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Translation.php:103
Stack trace:
#0 /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Translation.php(103): sprintf()
#1 /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Scripts.php(180): PrestoPlayer\Services\Translation::geti18n()
#2 /home/u291129052/domains/re-down.com/public_html/wp-includes/class-wp-hook.php(341): PrestoPlayer\Services\Scripts->registerPrestoComponents()
#3 /home/u291129052/domains/re-down.com/public_html/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters()
#4 /home/u291129052/domains/re-down.com/public_html/wp-includes/plugin.php(522): WP_Hook->do_action()
#5 /home/u291129052/domains/re-down.com/public_html/wp-settings.php(742): do_action()
#6 /home/u291129052/domains/re-down.com/public_html/wp-config.php(118): require_once('/home/u29112905...')
#7 /home/u291129052/domains/re-down.com/public_html/wp-load.php(50): require_once('/home/u29112905...')
#8 /home/u291129052/domains/re-down.com/public_html/wp-blog-header.php(13): require_once('/home/u29112905...')
#9 /home/u291129052/domains/re-down.com/public_html/index.php(17): require('/home/u29112905...')
#10 {main}
thrown in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Translation.php on line 103
[25-Feb-2026 16:29:41 UTC] PHP Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the
presto-player
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
init
action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/u291129052/domains/re-down.com/public_html/wp-includes/functions.php on line 6131
That fatal error is coming from **PHP 8+ being stricter with `sprintf()`**.
## What the error means
`Translation.php:103` in **Presto Player** calls `sprintf()` with a *translated* string.
`sprintf()` expects placeholders like:
* `%s`
* `%d`
* `%1$s` (numbered placeholders)
But in your case PHP sees a `%` followed by an **invalid character** (shown as `�`), so it throws:
> `ValueError: Unknown format specifier "�"`
This almost always happens when a translation accidentally changes placeholders, e.g.:
* `%s` became `s%`
* `%1$s` became `%1$ s` (extra space)
* there’s a stray `%` added in the translation
* encoding/copy-paste introduced a bad character after `%`
The fix is: **identify which Presto Player string is being passed to `sprintf()`**, then correct its **placeholders** in WPML’s Korean translation.
## Steps
1. **Find the string in the plugin code**
* Open: `wp-content/plugins/presto-player/inc/Services/Translation.php`
* Go to **line ~103** (where `sprintf()` is called).
* Note the **exact original string** being used (the one containing `%...` placeholders), or the translation key passed into that call.
2. **Locate the same string in WPML**
* In WP admin: **WPML → String Translation**
* Filter/search by domain: `presto-player` (or search the exact text / a unique fragment from step 1).
3. **Fix the placeholders**
* Make the Korean translation keep placeholders **identical** to the original:
* `%s` must stay `%s`
* `%1$s` must stay `%1$s` (same numbering/order)
* Remove any stray `%` or any `%` followed by a weird character/space
I have ran the debug once more here is the new debug log
[25-Feb-2026 16:49:46 UTC] PHP Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the
presto-player
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
init
action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/u291129052/domains/re-down.com/public_html/wp-includes/functions.php on line 6131
[25-Feb-2026 16:49:48 UTC] PHP Deprecated: Invalid characters passed for attempted conversion, these have been ignored in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/kadence-blocks-pro/includes/helper-functions.php on line 25
[25-Feb-2026 16:49:48 UTC] PHP Deprecated: Invalid characters passed for attempted conversion, these have been ignored in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/kadence-blocks-pro/includes/helper-functions.php on line 27
[25-Feb-2026 16:49:55 UTC] PHP Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the
presto-player
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
init
action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/u291129052/domains/re-down.com/public_html/wp-includes/functions.php on line 6131
[25-Feb-2026 16:49:58 UTC] PHP Fatal error: Uncaught ValueError: Unknown format specifier "�" in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Translation.php:103
Stack trace:
#0 /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Translation.php(103): sprintf()
#1 /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Scripts.php(180): PrestoPlayer\Services\Translation::geti18n()
#2 /home/u291129052/domains/re-down.com/public_html/wp-includes/class-wp-hook.php(341): PrestoPlayer\Services\Scripts->registerPrestoComponents()
#3 /home/u291129052/domains/re-down.com/public_html/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters()
#4 /home/u291129052/domains/re-down.com/public_html/wp-includes/plugin.php(522): WP_Hook->do_action()
#5 /home/u291129052/domains/re-down.com/public_html/wp-settings.php(742): do_action()
#6 /home/u291129052/domains/re-down.com/public_html/wp-config.php(118): require_once('/home/u29112905...')
#7 /home/u291129052/domains/re-down.com/public_html/wp-load.php(50): require_once('/home/u29112905...')
#8 /home/u291129052/domains/re-down.com/public_html/wp-blog-header.php(13): require_once('/home/u29112905...')
#9 /home/u291129052/domains/re-down.com/public_html/index.php(17): require('/home/u29112905...')
#10 {main}
thrown in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Translation.php on line 103
[25-Feb-2026 16:49:58 UTC] PHP Deprecated: Invalid characters passed for attempted conversion, these have been ignored in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/kadence-blocks-pro/includes/helper-functions.php on line 25
[25-Feb-2026 16:49:58 UTC] PHP Deprecated: Invalid characters passed for attempted conversion, these have been ignored in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/kadence-blocks-pro/includes/helper-functions.php on line 27
[25-Feb-2026 16:50:05 UTC] PHP Fatal error: Uncaught ValueError: Unknown format specifier "�" in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Translation.php:103
Stack trace:
#0 /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Translation.php(103): sprintf()
#1 /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Scripts.php(180): PrestoPlayer\Services\Translation::geti18n()
#2 /home/u291129052/domains/re-down.com/public_html/wp-includes/class-wp-hook.php(341): PrestoPlayer\Services\Scripts->registerPrestoComponents()
#3 /home/u291129052/domains/re-down.com/public_html/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters()
#4 /home/u291129052/domains/re-down.com/public_html/wp-includes/plugin.php(522): WP_Hook->do_action()
#5 /home/u291129052/domains/re-down.com/public_html/wp-settings.php(742): do_action()
#6 /home/u291129052/domains/re-down.com/public_html/wp-config.php(118): require_once('/home/u29112905...')
#7 /home/u291129052/domains/re-down.com/public_html/wp-load.php(50): require_once('/home/u29112905...')
#8 /home/u291129052/domains/re-down.com/public_html/wp-blog-header.php(13): require_once('/home/u29112905...')
#9 /home/u291129052/domains/re-down.com/public_html/index.php(17): require('/home/u29112905...')
#10 {main}
thrown in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/presto-player/inc/Services/Translation.php on line 103
[25-Feb-2026 16:50:15 UTC] PHP Deprecated: Invalid characters passed for attempted conversion, these have been ignored in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/kadence-blocks-pro/includes/helper-functions.php on line 25
[25-Feb-2026 16:50:15 UTC] PHP Deprecated: Invalid characters passed for attempted conversion, these have been ignored in /home/u291129052/domains/re-down.com/public_html/wp-content/plugins/kadence-blocks-pro/includes/helper-functions.php on line 27
The Korean translation of the string that is on line 103 is wrong; this is what's causing the fatal error.
According to the code you've shared, it should be 'Rewind %1ss' or maybe 'Forward %1ss'.
You can fix this by going to WPML > String Translation and searching for those strings within the presto-player domain. Check the Korean translation for those strings, making sure the placeholders are correct.
I was NOT able to see the translated strings neither 'Rewind %1ss' nor 'Forward %1ss' in the WPML > Translation screen.
What I end up doing is to rollback PrestoPlayer from ver. 4.1.10 to the previous version ver. 4.1.8 and disable the update in order to solve the issue for now. That solve my urgent matter (the crash when I switch to korean)
I do hope PrestoPlayer will release a fix soon enough
If you have another fix where I can find the wrong korean translation - It is also weird that it is the only language I have translation on for that plugin
Best regards
You can also fix the issue this way:
- Open the Korean .po file with Poedit (or similar).
- Usually next to the .mo file: presto-player-ko_KR.po
- Search within Poedit for the strings
- Ensure the translation contains the same placeholders
- Save (Poedit will regenerate the .mo), upload it back, and retest.
In any case, it looks like the issue is a typo in the Korean translation of the Presto Player plugin in the latest version.
Removing the Korean .po file should fix it, too. Then you can use String Translation for the translation.