Uncaught GuzzleHttp \Exception \ConnectException

Hi
while I was going to the admin dashboard, I got (HTTP ERROR 500) and this was the error message:

[13-Apr-2021 14:42:17 UTC] PHP Fatal error:  Uncaught GuzzleHttp\Exception\ConnectException: cURL error 6: Could not resolve host: pkp.sfu.ca (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) in /home2/serverte/public_html/ojs_test/ojs_medicine_temp/lib/pkp/lib/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:200
Stack trace:
#0 /home2/serverte/public_html/ojs_test/ojs_medicine_temp/lib/pkp/lib/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(155): GuzzleHttp\Handler\CurlFactory::createRejection(Object(GuzzleHttp\Handler\EasyHandle), Array)
#1 /home2/serverte/public_html/ojs_test/ojs_medicine_temp/lib/pkp/lib/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(105): GuzzleHttp\Handler\CurlFactory::finishError(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))
#2 /home2/serverte/public_html/ojs_test/ojs_medicine_temp/lib/pkp/lib/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php(43): GuzzleHttp\Handler\CurlFactory::finish(Object(GuzzleHttp\Handler\CurlHandler), Object(G in /home2/serverte/public_html/ojs_test/ojs_medicine_temp/lib/pkp/lib/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php on line 200

I wonder why this happened, the host was working just fine and I didn’t do anything to the host, OJS directory, or OJS setting.

Would you please help me?
Thank you for your suggestions.

Hi @makh

This looks like it might have been a temporary DNS error. Has the problem stopped?

Cheers,
Jason

Hi @jnugent

No, the problem still exists.
I’m going to ask my web host provider about this problem.

UPDATE:
It got fixed

Thanks

Hello,

I have the same problem (OJS 3.3.0-5 update from 3.2.1-3) and i just want to know how you, or your web host provider, resolve it ? I haven’t this problem with the previous version of OJS.
My server is full https, behind proxy server (force_ssl and proxy activated). I have to add a directive for apache2 about SetEnvIf (https) to resolve mixed content with this new version.
The front is ok, but some page in admin are impossible to access. This is the error :

Uncaught GuzzleHttp\\Exception\\ConnectException: cURL error 7: Failed to connect to pkp.sfu.ca port 80: Connection timed out (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) in /var/www/html/ojs/lib/pkp/lib/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:200\nStack trace:\n#0 /var/www/html/ojs/lib/pkp/lib/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(155): GuzzleHttp\\Handler\\CurlFactory::createRejection(Object(GuzzleHttp\\Handler\\EasyHandle), Array)\n#1 /var/www/html/ojs/lib/pkp/lib/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(105): GuzzleHttp\\Handler\\CurlFactory::finishError(Object(GuzzleHttp\\Handler\\CurlHandler), Object(GuzzleHttp\\Handler\\EasyHandle), Object(GuzzleHttp\\Handler\\CurlFactory))\n#2 /var/www/html/ojs/lib/pkp/lib/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php(43): GuzzleHttp\\Handler\\CurlFactory::finish(Object(GuzzleHttp\\Handler\\CurlHandler), Object(GuzzleHttp\\Handler\\EasyHandle), Object(GuzzleHttp\\Handler\\CurlFactory))\n#3 /var/www/html/ojs/lib/pkp/lib/vendor/guzzlehttp in /var/www/html/ojs/lib/pkp/lib/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php on line 200
Thanks for yours answers,
Best regards,
Stéphane

Hi @makh

Glad to hear. What was the resolution?

Best,
Jason

I should add that the problem was solved by the hosting provider in a few hours.

Thank you all for your support

I have a similar issue after upgrading to OJS 3.3.0-8.
Before the upgrade I was running OJS 3.2.1-4 and did not experience this issue.

I would be very happy if someone who has solved this could share how the problem was solved (@makh or ask their hosting provider how they solved it) ;-).

When I try to access the Settings > Journals (https://example.com/index.php/journalname/management/settings/context) or Administration (https://example.com/index.php/index/admin/index)

I get a blank page with the following error:

Fatal error: Uncaught GuzzleHttp\Exception\ConnectException: cURL error 7: (see libcurl - Error Codes) in /var/www/vhosts/journal-ojs-3.3.0-8/lib/pkp/lib/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:200 Stack trace: #0 /var/www/vhosts/journal-ojs-3.3.0-8/lib/pkp/lib/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(155): GuzzleHttp\Handler\CurlFactory::createRejection(Object(GuzzleHttp\Handler\EasyHandle), Array) #1 /var/www/vhosts/journal-ojs-3.3.0-8/lib/pkp/lib/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(105): GuzzleHttp\Handler\CurlFactory::finishError(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory)) #2 /var/www/vhosts/journal-ojs-3.3.0-8/lib/pkp/lib/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php(43): GuzzleHttp\Handler\CurlFactory::finish(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object( in /var/www/vhosts/journal-ojs-3.3.0-8/lib/pkp/lib/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php on line 200

Best regards,
Eirik Hanssen
Oslo Metropolitan University Library

Good news, here is the solution to my problem.
Our webserver is running Red Hat Enterprise Linux 8.4 with SELinux enabled.

SE-linux was blocking php from outbound connections on port 80, and the solution in my case was to allow this traffic with the following command used to configure a running SELinux:

setsebool -P httpd_can_network_connect 1

This change worked immediately without having to restart any services.

After this change I can access the part of the administration interface in OJS which needs web access on port 80 such as Setting > Journal and Setting > Website > Plugins > Plugin Gallery, as well as Administration.

I discovered this by displaying some system messages in realtime, which also had the solution:
journalctl -f

Some relevant output while trying to access Settings > Journal in the backend with a browser:

SELinux is preventing php-fpm from name_connect access on the tcp_socket port 80. For complete SELinux messages run: sealert -l 8e0527b7-c7ee-4f53-8f07-aa85a38b9513
Oct 14 13:53:53 (edited) setroubleshoot[2501589]: SELinux is preventing php-fpm from name_connect access on the tcp_socket port 80.
                                                               
*****  Plugin catchall_boolean (24.7 confidence) suggests   ******************

If you want to allow httpd to can network connect
Then you must tell SELinux about this by enabling the 'httpd_can_network_connect' boolean.

Do
setsebool -P httpd_can_network_connect 1
3 Likes

@Eirik_Hanssen

I am facing same issue but we are using shared hosting and i have no access to run this command on linux, is any other solution or hosting company can do this?

Thanks in advance.

This topic was automatically closed after 6 days. New replies are no longer allowed.