Skip to content Skip to sidebar

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

Problem:
If you're experiencing a fatal error with WPML when another plugin tries to read the configuration of your shop, and you're using PHP 8.4, this might be due to deprecated warnings triggered by the new checks introduced in PHP 8.4.
Solution:
We recommend switching to a PHP version prior to 8.4 as a temporary workaround while we address these compatibility issues. This change should help avoid the fatal error you're encountering.

Please note that this solution might be outdated or not applicable to your specific case. If this does not resolve your issue, we highly recommend checking related known issues, verifying the version of the permanent fix, and confirming that you have installed the latest versions of themes and plugins. If the problem persists, please open a new support ticket.

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 3 replies, has 0 voices.

Last updated by oliverL-30 1 day, 16 hours ago.

Assisted by: Bruno Kos.

Author Posts
December 29, 2025 at 12:36 pm #17694786

oliverL-30

Hello,

Another plugin is trying to read the configuration off my shop. Unfortunately, WPML is throwing a fatal error and, by this, blocking that request. I have a log file.
```
172.18.0.6 - 29/Dec/2025:11:53:38 +0000 "POST /bridge2cart/bridge.php" 200
NOTICE: PHP message: PHP Fatal error: Uncaught ErrorException: WPML\Core\Component\Translation\Domain\Links\HandleUpdateTranslation::adjustOnlyOnce(): Implicitly marking parameter $triggerItem as nullable is deprecated, the explicit nullable type must be used instead in /var/www/html/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/src/Core/Component/Translation/Domain/Links/HandleUpdateTranslation.php:75
Stack trace:
#0 /var/www/html/wp-content/plugins/sitepress-multilingual-cms/vendor/composer/ClassLoader.php(571): exceptions_error_handler()
#1 /var/www/html/wp-content/plugins/sitepress-multilingual-cms/vendor/composer/ClassLoader.php(571): include()
#2 /var/www/html/wp-content/plugins/sitepress-multilingual-cms/vendor/composer/ClassLoader.php(428): Composer\Autoload\includeFile()
#3 [internal function]: Composer\Autoload\ClassLoader->loadClass()
#4 /var/www/html/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/lib/Php/Auryn/StandardReflector.php(14): ReflectionClass->__construct()
#5 /var/www/html/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/lib/Php/Auryn/CachingReflector.php(38): WPML\PHP\Auryn\StandardReflector->getCtor()
#6 /var/www/html/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/lib/Php/Auryn/Injector.php(399): WPML\PHP\Auryn\CachingReflector->getCtor()
#7 /var/www/html/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/lib/Php/Auryn/Injector.php(373): WPML\PHP\Auryn\Injector->provisionInstance()
#8 /var/www/html/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/lib/Php/Auryn/Injector.php(542): WPML\PHP\Auryn\Injector->make()
#9 /var/www/html/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/lib/Php/Auryn/Injector.php(474): WPML\PHP\Auryn\Injector->buildArgFromTypeHint()
#10 /var/www/html/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/lib/Php/Auryn/Injector.php(414): WPML\PHP\Auryn\Injector->provisionFuncArgs()
#11 /var/www/html/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/lib/Php/Auryn/Injector.php(373): WPML\PHP\Auryn\Injector->provisionInstance()
#12 /var/www/html/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/lib/Php/Auryn/Injector.php(542): WPML\PHP\Auryn\Injector->make()
#13 /var/www/html/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/lib/Php/Auryn/Injector.php(474): WPML\PHP\Auryn\Injector->buildArgFromTypeHint()
#14 /var/www/html/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/lib/Php/Auryn/Injector.php(414): WPML\PHP\Auryn\Injector->provisionFuncArgs()
#15 /var/www/html/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/lib/Php/Auryn/Injector.php(373): WPML\PHP\Auryn\Injector->provisionInstance()
#16 /var/www/html/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/src/Infrastructure/Dic.php(41): WPML\PHP\Auryn\Injector->make()
#17 /var/www/html/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/src/UserInterface/Web/Infrastructure/WordPress/CompositionRoot/Config/Event/Translation/Links/ItemUpdateEvent.php(30): WPML\Infrastructure\Dic->make()
#18 /var/www/html/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/src/UserInterface/Web/Infrastructure/WordPress/CompositionRoot/Config/Event/Translation/Links/ItemUpdateEvent.php(79): WPML\UserInterface\Web\Infrastructure\WordPress\CompositionRoot\Config\Event\Translation\Links\ItemUpdateEvent->getItemsUpdateEventAdapter()
#19 /var/www/html/wp-includes/class-wp-hook.php(341): WPML\UserInterface\Web\Infrastructure\WordPress\CompositionRoot\Config\Event\Translation\Links\ItemUpdateEvent->{closure:WPML\UserInterface\Web\Infrastructure\WordPress\CompositionRoot\Config\Event\Translation\Links\ItemUpdateEvent::register():78}()
#20 /var/www/html/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters()
#21 /var/www/html/wp-includes/plugin.php(522): WP_Hook->do_action()
#22 /var/www/html/wp-includes/load.php(1308): do_action()
#23 [internal function]: shutdown_action_hook()
#24 {main}
thrown in /var/www/html/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/src/Core/Component/Translation/Domain/Links/HandleUpdateTranslation.php on line 75
```

December 29, 2025 at 2:50 pm #17695237

Bruno Kos
WPML Supporter since 12/2018

Languages: English (English ) German (Deutsch ) French (Français )

Timezone: Europe/Zagreb (GMT+01:00)

Hello,

To better understand and reproduce the issue on our side, could you please let us know when exactly this fatal error occurs?

For example:

* Does it happen during a specific action (product update, order sync, background job, API call, etc.)?
* Is it triggered consistently, or only intermittently?
* Does it occur only when the external plugin makes requests, or also during normal site activity?

Would it be possible for you to temporarily test the site with an earlier PHP version (so not PHP 8.4) and let us know whether the issue still occurs?

We are actively working on ensuring full compatibility with PHP 8.4, and the deprecation related to `$triggerItem` implicitly being treated as nullable is one of the issues we have identified.

In certain setups, this can indeed escalate into fatal errors, as you are currently experiencing.

Testing with a previous PHP version would help confirm the scope of the issue.

December 30, 2025 at 11:03 am #17696561

oliverL-30

Hello Mr. Kos,

thank you for the swift reply. Can you tell me what the highest fully supported php version is? I think I could easily downgrade the php version as it is running in a container.

Everything else seems to work fine now after upgrading to php 8.4, except this external POST call to /bridge2cart/bridge.php
I only can say, that we have not discovered other problems yet.

December 30, 2025 at 4:03 pm #17697135

Bruno Kos
WPML Supporter since 12/2018

Languages: English (English ) German (Deutsch ) French (Français )

Timezone: Europe/Zagreb (GMT+01:00)

PHP 8.4 triggers deprecated warnings across our plugin set, and we are actively working on addressing these. In the meantime, you can use any PHP version prior to 8.4, as the new checks were introduced only in PHP 8.4.

December 30, 2025 at 9:11 pm #17697408

oliverL-30

Downgrading to php 8.3 solved this problem.
Thank you for your help.