Blocks of empty string and uninitialized string offset PHP error messages in Watchdog

Created on 6 August 2021, over 3 years ago
Updated 15 April 2025, 9 days ago

For the past few weeks I have been seeing occurrences of the following PHP error messages in Watchdog:

Warning: Cannot assign an empty string to a string offset in Cleantalk\Common\Helper::http__get_headers() (line 1265 of /public_html/modules/contrib/cleantalk/src/lib/Cleantalk/Common/Helper.php)
#0 /public_html/core/includes/bootstrap.inc(600): _drupal_error_handler_real(2, 'Cannot assign a...', '/...', 1265, Array)
#1 /public_html/modules/contrib/cleantalk/src/lib/Cleantalk/Common/Helper.php(1265): _drupal_error_handler(2, 'Cannot assign a...', '/...', 1265, Array)
#2 /public_html/modules/contrib/cleantalk/src/lib/Cleantalk/Common/Helper.php(205): Cleantalk\Common\Helper::http__get_headers()
#3 /public_html/modules/contrib/cleantalk/src/lib/Cleantalk/Common/Helper.php(248): Cleantalk\Common\Helper::ip__get('x_real_ip', true, Array)
#4 /public_html/modules/contrib/cleantalk/src/lib/Cleantalk/Common/Firewall/Firewall.php(254): Cleantalk\Common\Helper::ip__get('real', true)
#5 /public_html/modules/contrib/cleantalk/src/lib/Cleantalk/Common/Firewall/Firewall.php(128): Cleantalk\Common\Firewall\Firewall->ipGet('real', true)
#6 /public_html/modules/contrib/cleantalk/src/EventSubscriber/BootSubscriber.php(163): Cleantalk\Common\Firewall\Firewall->__construct('abede6u5yjun', Object(Cleantalk\ApbctDrupal\DB), 'cleantalk_sfw_l...')
#7 /public_html/core/modules/ban/src/BanMiddleware.php(50): Drupal\cleantalk\EventSubscriber\BootSubscriber->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#8 /public_html/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(47): Drupal\ban\BanMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#9 /public_html/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(52): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#10 /vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#11 /public_html/core/lib/Drupal/Core/DrupalKernel.php(708): Stack\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#12 /public_html/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request))
#13 {main}

Notice: Uninitialized string offset: 0 in Cleantalk\Common\Helper::http__get_headers() (line 1265 of /public_html/modules/contrib/cleantalk/src/lib/Cleantalk/Common/Helper.php)
#0 /public_html/core/includes/bootstrap.inc(600): _drupal_error_handler_real(8, 'Uninitialized s...', '/...', 1265, Array)
#1 /public_html/modules/contrib/cleantalk/src/lib/Cleantalk/Common/Helper.php(1265): _drupal_error_handler(8, 'Uninitialized s...', '/...', 1265, Array)
#2 /public_html/modules/contrib/cleantalk/src/lib/Cleantalk/Common/Helper.php(205): Cleantalk\Common\Helper::http__get_headers()
#3 /public_html/modules/contrib/cleantalk/src/lib/Cleantalk/Common/Helper.php(248): Cleantalk\Common\Helper::ip__get('x_real_ip', true, Array)
#4 /public_html/modules/contrib/cleantalk/src/lib/Cleantalk/Common/Firewall/Firewall.php(254): Cleantalk\Common\Helper::ip__get('real', true)
#5 /public_html/modules/contrib/cleantalk/src/lib/Cleantalk/Common/Firewall/Firewall.php(128): Cleantalk\Common\Firewall\Firewall->ipGet('real', true)
#6 /public_html/modules/contrib/cleantalk/src/EventSubscriber/BootSubscriber.php(163): Cleantalk\Common\Firewall\Firewall->__construct('abede6u5yjun', Object(Cleantalk\ApbctDrupal\DB), 'cleantalk_sfw_l...')
#7 /public_html/core/modules/ban/src/BanMiddleware.php(50): Drupal\cleantalk\EventSubscriber\BootSubscriber->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#8 /public_html/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(47): Drupal\ban\BanMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#9 /public_html/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(52): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#10 /vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#11 /public_html/core/lib/Drupal/Core/DrupalKernel.php(708): Stack\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#12 /public_html/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request))
#13 {main}

These messages typically appear once every 2-3 days.

The location, referrer, and Hostname data for each is empty.

The messages will be in pairings, but with 300+ in total. Spread of the messages is 1-2 seconds.

Yes, that truly is a block of 300+ of these messages appearing at essentially the same time in Watchdog.

They do not appear to coincide with any routine site activity, and there's nothing in Watchdog on either side of these messages out of the ordinary.

Does anybody have any pointers to a possible cause?

Is it possible that something at the Cleantalk server side of things is triggering this?

🐛 Bug report
Status

Fixed

Version

9.1

Component

Miscellaneous

Created by

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

No activities found.

Production build 0.71.5 2024