Not a bug CURL request made to URL pasted in CODE block

MattW

Well-known member
Affected version
2.3.8
Screenshot 2026-01-23 at 10.21.52.webp

I pasted a code block on my site which contained 4 NS servers. The software then appears to have attempted to CURL to them (which obviously won't work as they are DNS servers)

1769164084889.webp

Code:
GuzzleHttp\Exception\ConnectException: Failed to parse URL (http://ns4.mattwservices.uk) text content for content analyze: cURL error 28: Failed to connect to ns4.mattwservices.uk port 80: Connection timed out (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for http://ns4.mattwservices.uk src/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:210
Generated by: Unknown account Jan 23, 2026 at 9:31 AM
Stack trace
#0 src/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(158): GuzzleHttp\Handler\CurlFactory::createRejection(Object(GuzzleHttp\Handler\EasyHandle), Array)
#1 src/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(110): GuzzleHttp\Handler\CurlFactory::finishError(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))
#2 src/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php(47): GuzzleHttp\Handler\CurlFactory::finish(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))
#3 src/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php(28): GuzzleHttp\Handler\CurlHandler->__invoke(Object(GuzzleHttp\Psr7\Request), Array)
#4 src/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php(48): GuzzleHttp\Handler\Proxy::{closure:GuzzleHttp\Handler\Proxy::wrapSync():27}(Object(GuzzleHttp\Psr7\Request), Array)
#5 src/vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php(35): GuzzleHttp\Handler\Proxy::{closure:GuzzleHttp\Handler\Proxy::wrapStreaming():47}(Object(GuzzleHttp\Psr7\Request), Array)
#6 src/vendor/guzzlehttp/guzzle/src/Middleware.php(31): GuzzleHttp\PrepareBodyMiddleware->__invoke(Object(GuzzleHttp\Psr7\Request), Array)
#7 src/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php(71): GuzzleHttp\Middleware::{closure:{closure:GuzzleHttp\Middleware::cookies():28}:29}(Object(GuzzleHttp\Psr7\Request), Array)
#8 src/vendor/guzzlehttp/guzzle/src/Middleware.php(66): GuzzleHttp\RedirectMiddleware->__invoke(Object(GuzzleHttp\Psr7\Request), Array)
#9 src/vendor/guzzlehttp/guzzle/src/HandlerStack.php(75): GuzzleHttp\Middleware::{closure:{closure:GuzzleHttp\Middleware::httpErrors():60}:61}(Object(GuzzleHttp\Psr7\Request), Array)
#10 src/vendor/guzzlehttp/guzzle/src/Client.php(333): GuzzleHttp\HandlerStack->__invoke(Object(GuzzleHttp\Psr7\Request), Array)
#11 src/vendor/guzzlehttp/guzzle/src/Client.php(169): GuzzleHttp\Client->transfer(Object(GuzzleHttp\Psr7\Request), Array)
#12 src/vendor/guzzlehttp/guzzle/src/Client.php(189): GuzzleHttp\Client->requestAsync('GET', Object(GuzzleHttp\Psr7\Uri), Array)
#13 src/vendor/guzzlehttp/guzzle/src/ClientTrait.php(44): GuzzleHttp\Client->request('GET', 'http://ns4.matt...', Array)
#14 src/addons/Genesis/AIContentModeration/Service/UrlParser.php(226): GuzzleHttp\Client->get('http://ns4.matt...', Array)
#15 src/addons/Genesis/AIContentModeration/Service/UrlParser.php(38): Genesis\AIContentModeration\Service\UrlParser->fetchResponse()
#16 src/addons/Genesis/AIContentModeration/Service/ContentAnalyzer.php(135): Genesis\AIContentModeration\Service\UrlParser->textContent()
#17 src/addons/Genesis/AIContentModeration/Service/ContentAnalyzer.php(121): Genesis\AIContentModeration\Service\ContentAnalyzer->detectFlagsInUrl('http://ns4.matt...')
#18 src/addons/Genesis/AIContentModeration/Service/ContentAnalyzer.php(59): Genesis\AIContentModeration\Service\ContentAnalyzer->detectFlags(Object(SV\ReportImprovements\XF\Entity\Post))
#19 src/addons/Genesis/AIContentModeration/Job/AnalyzeEntityContent.php(51): Genesis\AIContentModeration\Service\ContentAnalyzer->processEntityIfHasFlags(Object(SV\ReportImprovements\XF\Entity\Post), Object(Genesis\AIContentModeration\Enums\FlagsDetectedAction), false)
#20 src/XF/Job/Manager.php(275): Genesis\AIContentModeration\Job\AnalyzeEntityContent->run(44.9833)
#21 src/XF/Job/Manager.php(205): XF\Job\Manager->runJobInternal(Array, 44.9833)
#22 src/XF/Job/Manager.php(89): XF\Job\Manager->runJobEntry(Array, 44.9833)
#23 src/XF/Cli/Command/RunJobs.php(58): XF\Job\Manager->runQueue(false, 45)
#24 src/vendor/symfony/console/Command/Command.php(298): XF\Cli\Command\RunJobs->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#25 src/vendor/symfony/console/Application.php(1040): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#26 src/vendor/symfony/console/Application.php(301): Symfony\Component\Console\Application->doRunCommand(Object(XF\Cli\Command\RunJobs), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#27 src/vendor/symfony/console/Application.php(171): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#28 src/XF/Cli/Runner.php(115): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#29 cmd.php(17): XF\Cli\Runner->run()
#30 {main}
Request state
array(1) {
  ["cli"] => string(66) "/home/nginx/domains/mattwservices.co.uk/public/cmd.php xf:run-jobs"
}

I've never had this before when posting things in a code block prior to upgraded to 2.3.8. Although, looking at the error, I wonder if it's from the AIContentModeration addon?
 
Yeah, this looks like it's coming from that add-on based on these particular lines:

Code:
#14 src/addons/Genesis/AIContentModeration/Service/UrlParser.php(226): GuzzleHttp\Client->get('http://ns4.matt...', Array)
#15 src/addons/Genesis/AIContentModeration/Service/UrlParser.php(38): Genesis\AIContentModeration\Service\UrlParser->fetchResponse()
#16 src/addons/Genesis/AIContentModeration/Service/ContentAnalyzer.php(135): Genesis\AIContentModeration\Service\UrlParser->textContent()
#17 src/addons/Genesis/AIContentModeration/Service/ContentAnalyzer.php(121): Genesis\AIContentModeration\Service\ContentAnalyzer->detectFlagsInUrl('http://ns4.matt...')
#18 src/addons/Genesis/AIContentModeration/Service/ContentAnalyzer.php(59): Genesis\AIContentModeration\Service\ContentAnalyzer->detectFlags(Object(SV\ReportImprovements\XF\Entity\Post))
#19 src/addons/Genesis/AIContentModeration/Job/AnalyzeEntityContent.php(51): Genesis\AIContentModeration\Service\ContentAnalyzer->processEntityIfHasFlags(Object(SV\ReportImprovements\XF\Entity\Post), Object(Genesis\AIContentModeration\Enums\FlagsDetectedAction), false)

I would check there.
 
Back
Top Bottom