Error internet connection check / App store fetcher / Updating error

Hi there,

I recently checked my logs and found out that there a lot of ssl errors. Actually I just wanted to do an update to my Nextcloud installation. I cannot remember those errors after the fresh installation so they must have been appeared in the last weeks/montsh.

Anyway, I am not able to update. I think it is because of the errors I found in the logs. Unfortunately I do not get the point that is why I am asking you. I did not change anything regarding my installation. I am even not able to update my installed apps.

I am getting two sorts of errors:

Error internet_connection_check
Error appstoreFetcher

Both of them say that there is a ssl error in combination with cURL. Can you help me?

About my installation: I do not own a dedicated (v)Server. My Nextcloud instance is installed on a webhosting platform. I am not facing any other problems with my Nextcloud. On my webhosting I own two installations: one for prodcution and one for testing purposes. The production instance is version 12.0.2, the testing is 11.0.2. Both face the same problems.

Note: I replaced the real directory paths with “~directory” to hide the real location.

Internet Connection Check
Error internet_connection_check GuzzleHttp\Exception\ConnectException: cURL error 35: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version

~directory/3rdparty/guzzlehttp/guzzle/src/RequestFsm.php - line 104: GuzzleHttp\Exception\RequestException wrapException(Object(GuzzleHttp\Message\Request), Object(GuzzleHttp\Ring\Exception\ConnectException))
~directory/3rdparty/guzzlehttp/guzzle/src/RequestFsm.php - line 132: GuzzleHttp\RequestFsm->__invoke(Object(GuzzleHttp\Transaction))
~directory/3rdparty/react/promise/src/FulfilledPromise.php - line 25: GuzzleHttp\RequestFsm->GuzzleHttp\{closure}(Array)
~directory/3rdparty/guzzlehttp/ringphp/src/Future/CompletedFutureValue.php - line 55: React\Promise\FulfilledPromise->then(Object(Closure), NULL, NULL)
~directory/3rdparty/guzzlehttp/guzzle/src/Message/FutureResponse.php - line 43: GuzzleHttp\Ring\Future\CompletedFutureValue->then(Object(Closure), NULL, NULL)
~directory/3rdparty/guzzlehttp/guzzle/src/RequestFsm.php - line 135: GuzzleHttp\Message\FutureResponse proxy(Object(GuzzleHttp\Ring\Future\CompletedFutureArray), Object(Closure))
~directory/3rdparty/guzzlehttp/guzzle/src/RequestFsm.php - line 132: GuzzleHttp\RequestFsm->__invoke(Object(GuzzleHttp\Transaction))
~directory/3rdparty/react/promise/src/FulfilledPromise.php - line 25: GuzzleHttp\RequestFsm->GuzzleHttp\{closure}(Array)
~directory/3rdparty/guzzlehttp/ringphp/src/Future/CompletedFutureValue.php - line 55: React\Promise\FulfilledPromise->then(Object(Closure), NULL, NULL)
~directory/3rdparty/guzzlehttp/guzzle/src/Message/FutureResponse.php - line 43: GuzzleHttp\Ring\Future\CompletedFutureValue->then(Object(Closure), NULL, NULL)
~directory/3rdparty/guzzlehttp/guzzle/src/RequestFsm.php - line 135: GuzzleHttp\Message\FutureResponse proxy(Object(GuzzleHttp\Ring\Future\CompletedFutureArray), Object(Closure))
~directory/3rdparty/guzzlehttp/guzzle/src/Client.php - line 165: GuzzleHttp\RequestFsm->__invoke(Object(GuzzleHttp\Transaction))
~directory/3rdparty/guzzlehttp/guzzle/src/Client.php - line 125: GuzzleHttp\Client->send(Object(GuzzleHttp\Message\Request))
~directory/lib/private/Http/Client/Client.php - line 137: GuzzleHttp\Client->get('http //www.next...', Array)
~directory/settings/Controller/CheckSetupController.php - line 124: OC\Http\Client\Client->get('http //www.next...')
~directory/settings/Controller/CheckSetupController.php - line 107: OC\Settings\Controller\CheckSetupController->isSiteReachable('www.nextcloud.c...')
~directory/settings/Controller/CheckSetupController.php - line 363: OC\Settings\Controller\CheckSetupController->isInternetConnectionWorking()
[internal function] OC\Settings\Controller\CheckSetupController->check()
~directory/lib/private/AppFramework/Http/Dispatcher.php - line 160: call_user_func_array(Array, Array)
~directory/lib/private/AppFramework/Http/Dispatcher.php - line 90: OC\AppFramework\Http\Dispatcher->executeController(Object(OC\Settings\Controller\CheckSetupController), 'check')
~directory/lib/private/AppFramework/App.php - line 114: OC\AppFramework\Http\Dispatcher->dispatch(Object(OC\Settings\Controller\CheckSetupController), 'check')
~directory/lib/private/AppFramework/Routing/RouteActionHandler.php - line 47: OC\AppFramework\App main('CheckSetupContr...', 'check', Object(OC\AppFramework\DependencyInjection\DIContainer), Array)
[internal function] OC\AppFramework\Routing\RouteActionHandler->__invoke(Array)
~directory/lib/private/Route/Router.php - line 299: call_user_func(Object(OC\AppFramework\Routing\RouteActionHandler), Array)
~directory/lib/base.php - line 1010: OC\Route\Router->match('/settings/ajax/...')
~directory/index.php - line 40: OC handleRequest()
{main}

App Store Fetcher

Error	appstoreFetcher	GuzzleHttp\Exception\ConnectException: cURL error 35: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

    ~directory/3rdparty/guzzlehttp/guzzle/src/RequestFsm.php - line 104: GuzzleHttp\Exception\RequestException wrapException(Object(GuzzleHttp\Message\Request), Object(GuzzleHttp\Ring\Exception\ConnectException))
    ~directory/3rdparty/guzzlehttp/guzzle/src/RequestFsm.php - line 132: GuzzleHttp\RequestFsm->__invoke(Object(GuzzleHttp\Transaction))
    ~directory/3rdparty/react/promise/src/FulfilledPromise.php - line 25: GuzzleHttp\RequestFsm->GuzzleHttp\{closure}(Array)
    ~directory/3rdparty/guzzlehttp/ringphp/src/Future/CompletedFutureValue.php - line 55: React\Promise\FulfilledPromise->then(Object(Closure), NULL, NULL)
    ~directory/3rdparty/guzzlehttp/guzzle/src/Message/FutureResponse.php - line 43: GuzzleHttp\Ring\Future\CompletedFutureValue->then(Object(Closure), NULL, NULL)
    ~directory/3rdparty/guzzlehttp/guzzle/src/RequestFsm.php - line 135: GuzzleHttp\Message\FutureResponse proxy(Object(GuzzleHttp\Ring\Future\CompletedFutureArray), Object(Closure))
    ~directory/3rdparty/guzzlehttp/guzzle/src/Client.php - line 165: GuzzleHttp\RequestFsm->__invoke(Object(GuzzleHttp\Transaction))
    ~directory/3rdparty/guzzlehttp/guzzle/src/Client.php - line 125: GuzzleHttp\Client->send(Object(GuzzleHttp\Message\Request))
    ~directory/lib/private/Http/Client/Client.php - line 138: GuzzleHttp\Client->get('https //apps.ne...', Array)
    ~directory/lib/private/App/AppStore/Fetcher/Fetcher.php - line 99: OC\Http\Client\Client->get('https //apps.ne...', Array)
    ~directory/lib/private/App/AppStore/Fetcher/AppFetcher.php - line 66: OC\App\AppStore\Fetcher\Fetcher->fetch('"2017-12-21 13 ...', '[{"id" "spreedm...')
    ~directory/lib/private/App/AppStore/Fetcher/Fetcher.php - line 162: OC\App\AppStore\Fetcher\AppFetcher->fetch('"2017-12-21 13 ...', '[{"id" "spreedm...')
    ~directory/lib/private/Installer.php - line 394: OC\App\AppStore\Fetcher\Fetcher->get()
    ~directory/apps/updatenotification/lib/Notification/BackgroundJob.php - line 258: OC\Installer isUpdateAvailable('workflowengine', Object(OC\App\AppStore\Fetcher\AppFetcher))
    ~directory/apps/updatenotification/lib/Notification/BackgroundJob.php - line 155: OCA\UpdateNotification\Notification\BackgroundJob->isUpdateAvailable('workflowengine')
    ~directory/apps/updatenotification/lib/Notification/BackgroundJob.php - line 79: OCA\UpdateNotification\Notification\BackgroundJob->checkAppUpdates()
    ~directory/lib/private/BackgroundJob/Job.php - line 59: OCA\UpdateNotification\Notification\BackgroundJob->run(NULL)
    ~directory/lib/private/BackgroundJob/TimedJob.php - line 54: OC\BackgroundJob\Job->execute(Object(OC\BackgroundJob\JobList), Object(OC\Log))
    ~directory/cron.php - line 147: OC\BackgroundJob\TimedJob->execute(Object(OC\BackgroundJob\JobList), Object(OC\Log))
    {main}

Your ca-certificates are probably outdated. Contact your hoster

Thanks for your quick response.

I have got a Let’s Encrypt certificate that is valid through 10.8.18. So I think that is not the problem. Any other ideas?

Your webserver certificate has nothing to do with that. Just Google it :wink:

You could run a manual upgrade as well. However, you will get problems with installation of apps later, so you’d have to do everything manually. So it’s probably better to get current ca-certificates in your hoster’s system on the long term.

It can be worth checking which versions (and patches) the hoster is running on his systems. We have seen hosters that still worked with Debian 4 or 5 (two years ago)…

I figured it out: I opened a support ticket with my problem description and my provider moved my hosting package to a new server. That did it. Thanks guys!