Skip to content Skip to sidebar

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

Problem:
The client experienced a site crash when updating the WPML String Translation to version 3.4.1 on PHP version 8.3.29. The error indicated a missing class 'WPML\Infrastructure\WordPress\Port\Persistence\DatabaseWrite'.
Solution:
We recommended removing the current WPML installation and reinstalling it. A fresh installation of WPML resolved the issue. It is crucial to make a full site backup of files and database before proceeding with these steps. For further details on privacy and security when providing debug information for support, please visit: https://wpml.org/purchase/support-policy/privacy-and-security-when-providing-debug-information-for-support/

If this solution does not apply to your case, or if it seems outdated, 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 issues persist, please 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.

Tagged: 

This topic contains 1 replies, has 0 voices.

Last updated by b.-van-derB 2 days, 9 hours ago.

Assisted by: Itamar.

Author Posts
January 13, 2026 at 3:40 pm #17726441

b.-van-derB

When updating the WPML String Translation (versie 3.4.1) PHP version 8.3.29, the site crashed.

Error details
============
Een fout van het type E_ERROR werd veroorzaakt op regelnummer 13 van het bestand /var/www/web/app/plugins/wpml-string-translation/StringTranslation/Infrastructure/TranslateEverything/UntranslatedStringsFactory.php. Foutmelding: Uncaught Error: Class "WPMLInfrastructureWordPressPortPersistenceDatabaseWrite" not found in /var/www/web/app/plugins/wpml-string-translation/StringTranslation/Infrastructure/TranslateEverything/UntranslatedStringsFactory.php:13
Stack trace:
#0 /var/www/web/app/plugins/wpml-string-translation/StringTranslation/Application.php(55): WPMLStringTranslationInfrastructureTranslateEverythingUntranslatedStringsFactory->create()
#1 [internal function]: WPMLStringTranslationApplication->WPMLStringTranslation{closure}()
#2 /var/www/web/app/plugins/wpml-cms/vendor/otgs/auryn/lib/Executable.php(62): call_user_func_array(Object(Closure), Array)
#3 /var/www/web/app/plugins/wpml-cms/vendor/otgs/auryn/lib/Executable.php(46): WPMLAurynExecutable->invokeClosureCompat(Object(ReflectionFunction), Array)
#4 [internal function]: WPMLAurynExecutable->__invoke()
#5 /var/www/web/app/plugins/wpml-cms/vendor/otgs/auryn/lib/Injector.php(371): call_user_func_array(Array, Array)
#6 /var/www/web/app/plugins/wpml-cms/vendor/otgs/auryn/lib/Injector.php(542): WPMLAurynInjector->make('WPML\StringTran...')
#7 /var/www/web/app/plugins/wpml-cms/vendor/otgs/auryn/lib/Injector.php(474): WPMLAurynInjector->buildArgFromTypeHint(Object(ReflectionMethod), Object(ReflectionParameter))
#8 /var/www/web/app/plugins/wpml-cms/vendor/otgs/auryn/lib/Injector.php(414): WPMLAurynInjector->provisionFuncArgs(Object(ReflectionMethod), Array, Array, 'WPML\StringTran...')
#9 /var/www/web/app/plugins/wpml-cms/vendor/otgs/auryn/lib/Injector.php(373): WPMLAurynInjector->provisionInstance('WPML\StringTran...', 'wpml\stringtran...', Array)
#10 /var/www/web/app/plugins/wpml-cms/vendor/otgs/auryn/lib/Injector.php(542): WPMLAurynInjector->make('WPML\StringTran...')
#11 /var/www/web/app/plugins/wpml-cms/vendor/otgs/auryn/lib/Injector.php(474): WPMLAurynInjector->buildArgFromTypeHint(Object(ReflectionMethod), Object(ReflectionParameter))
#12 /var/www/web/app/plugins/wpml-cms/vendor/otgs/auryn/lib/Injector.php(414): WPMLAurynInjector->provisionFuncArgs(Object(ReflectionMethod), Array, Array, 'WPML\StringTran...')
#13 /var/www/web/app/plugins/wpml-cms/vendor/otgs/auryn/lib/Injector.php(373): WPMLAurynInjector->provisionInstance('WPML\StringTran...', 'wpml\stringtran...', Array)
#14 /var/www/web/app/plugins/wpml-string-translation/StringTranslation/Application.php(80): WPMLAurynInjector->make('WPML\StringTran...')
#15 /var/www/web/app/plugins/wpml-string-translation/classes/class-wpml-st-initialize.php(23): WPMLStringTranslationApplication->run()
#16 /var/www/web/wp/wp-includes/class-wp-hook.php(341): WPML_ST_Initialize->run('')
#17 /var/www/web/wp/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters(NULL, Array)
#18 /var/www/web/wp/wp-includes/plugin.php(522): WP_Hook->do_action(Array)
#19 /var/www/web/wp/wp-settings.php(593): do_action('plugins_loaded')
#20 /var/www/web/wp-config.php(9): require_once('/var/www/web/wp...')
#21 /var/www/web/wp/wp-load.php(55): require_once('/var/www/web/wp...')
#22 /var/www/web/wp/wp-admin/admin-ajax.php(22): require_once('/var/www/web/wp...')
#23 {main}
thrown

January 13, 2026 at 4:02 pm #17726532

Itamar
WPML Supporter since 02/2016

Languages: English (English )

Timezone: Asia/Jerusalem (GMT+02:00)

Hi,

Please try my suggestion to reinstall WPML and see if it solves the problem.

If you need further help with this, please share the access details to your site with me. And if needed, please allow me to take a copy of your site. For this, I must install a plugin like Duplicator or All-in-One Migration. Please let me know if you agree. I'm enabling a private message for the following reply.

Privacy and Security Policy
We have strict policies regarding privacy and access to your information. Please see:
https://wpml.org/purchase/support-policy/privacy-and-security-when-providing-debug-information-for-support/
**IMPORTANT**
- - Please back up the site files and database before providing us access. --
-- If you have a staging site where the problem can be reproduced, it is better to share access to the staging site.--

Regards,
Itamar.

January 14, 2026 at 8:52 am #17728127

b.-van-derB

Issue has been resolved by installing a fresh installation.