XF 2.2 Error: Connection to PayPal failed: cURL error 77: (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)

shawn

Well-known member
I have a couple of pages of these dating back to last Friday. Any ideas?

Edit: deleted PP stack trace
 
Last edited:
Possibly related, lots of these (but going back several weeks):

ErrorException: Push notification failure: cURL error 77: (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)
src/XF/Error.php:77

#0 src/XF.php(219): XF\Error->logError('Push notificati...', false)
#1 src/XF/Service/PushNotification.php(267): XF::logError('Push notificati...')
#2 src/XF/Service/PushNotification.php(179): XF\Service\PushNotification->handleResults(Object(Generator))
#3 src/XF/Service/PusherTrait.php(194): XF\Service\PushNotification->sendNotifications()
#4 src/XF/Repository/UserAlert.php(165): XF\Service\Alert\Pusher->push()
#5 src/XF/Repository/UserAlert.php(103): XF\Repository\UserAlert->insertAlert(137, 5796, 'xxx', 'post', 1971002, 'reaction', Array, Array)
#6 src/XF/Reaction/AbstractHandler.php(192): XF\Repository\UserAlert->alertFromUser(Object(XFMG\XF\Entity\User), Object(XFMG\XF\Entity\User), 'post', 1971002, 'reaction', Array)
#7 src/XF/Repository/Reaction.php(203): XF\Reaction\AbstractHandler->sendReactionAlert(Object(XFMG\XF\Entity\User), Object(XFMG\XF\Entity\User), 1971002, Object(XFMG\XF\Entity\Post), 5)
#8 src/XF/Repository/Reaction.php(144): XF\Repository\Reaction->insertReaction(5, 'post', 1971002, Object(XFMG\XF\Entity\User), true, false)
#9 src/XF/ControllerPlugin/Reaction.php(67): XF\Repository\Reaction->reactToContent(5, 'post', 1971002, Object(XFMG\XF\Entity\User), true)
#10 src/XF/ControllerPlugin/Reaction.php(21): XF\ControllerPlugin\Reaction->actionToggleReaction(Object(XFMG\XF\Entity\Post), 'posts/reactions', 'posts')
#11 src/XF/ControllerPlugin/Reaction.php(14): XF\ControllerPlugin\Reaction->actionReact(Object(XFMG\XF\Entity\Post), 'posts', 'posts/react', 'posts/reactions')
#12 src/XF/Pub/Controller/Post.php(381): XF\ControllerPlugin\Reaction->actionReactSimple(Object(XFMG\XF\Entity\Post), 'posts')
#13 src/XF/Mvc/Dispatcher.php(352): XF\Pub\Controller\Post->actionReact(Object(XF\Mvc\ParameterBag))
#14 src/XF/Mvc/Dispatcher.php(259): XF\Mvc\Dispatcher->dispatchClass('XF:Post', 'React', Object(XF\Mvc\RouteMatch), Object(XF\Pub\Controller\Post), NULL)
#15 src/XF/Mvc/Dispatcher.php(115): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(XF\Pub\Controller\Post), NULL)
#16 src/XF/Mvc/Dispatcher.php(57): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#17 src/XF/App.php(2487): XF\Mvc\Dispatcher->run()
#18 src/XF.php(524): XF\App->run()
#19 index.php(20): XF::runApp('XF\\Pub\\App')
#20 {main}
 
If you look at the URL and error code that curl gives you, it's:
CURLE_SSL_CACERT_BADFILE (77)

Problem with reading the SSL CA cert (path? access rights?)

So it looks like a problem with the cert files on your server (either missing or they are old/expired).

If you have shell access to your server, you should be able to run curl and see if it throws an error. Ultimately it's going to be something your server administrator probably needs to look at.
 
curl and SSL related libraries (like openssl) up to date on your server? The location where your certs should be is going to be unique to your setup. There are a few commonly used locations, but none are going to be "absolute" for all servers. Assuming your server is up to date (curl and certificates and ssl libraries), you might need to do some debugging to figure out where it's looking for them exactly.
 
curl and SSL related libraries (like openssl) up to date on your server? The location where your certs should be is going to be unique to your setup. There are a few commonly used locations, but none are going to be "absolute" for all servers. Assuming your server is up to date (curl and certificates and ssl libraries), you might need to do some debugging to figure out where it's looking for them exactly.

/etc/ssl/certs is where everything else lives (CentOS). The SSL certs we use for the site are current, don't expire until next year. Reinstalled ca-certificates package to make sure the ca-bundle.crt, etc, files are current.

Any suggestions on where to start debugging?
 
The curl PHP extension has one directive you can set in your php.ini file with allows you to override the default location. The default value is null, and it will look to the operating system (or more specifically the location that libcurl is looking). You can override that with this directive:


It doesn't solve the problem of where the operating system is looking for it, and why it's not there, but at least you can override it.
 
/etc/ssl/certs is where everything else lives (CentOS). The SSL certs we use for the site are current, don't expire until next year. Reinstalled ca-certificates package to make sure the ca-bundle.crt, etc, files are current.

Any suggestions on where to start debugging?
For RHEL/CentOS based systems do yum update for nss and ca-certificates or do yum update for all updates and then restart web server and PHP services :)

My users had the same issue https://community.centminmod.com/threads/curl-error-77-on-xenforo-v2-2-13.24174/
 
Top Bottom