On a Dual-Stack-Configuration with IPv4 and IPv6, downloading for install or update apps from appstore is sometimes not possible as ipv6 is usually preferred.
Github.com is ipv4 only.
Download and install or update app successfully.
{"reqId":"t2EQ44NQVBzBu3tMkSXX","level":3,"time":"2026-05-21T09:47:25+00:00","remoteAddr":"81.*.*.*","user":"<snip>","app":"no app in context","method":"GET","url":"/settings/apps/update/notify_push","scriptName":"/index.php","message":"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'github.com' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://github.com/nextcloud-releases/notify_push/releases/download/v1.3.3/notify_push-v1.3.3.tar.gz","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36","version":"33.0.3.2","exception":{"Exception":"GuzzleHttp\\Exception\\RequestException","Message":"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'github.com' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://github.com/nextcloud-releases/notify_push/releases/download/v1.3.3/notify_push-v1.3.3.tar.gz","Code":0,"Trace":[{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php","line":207,"function":"createRejection","class":"GuzzleHttp\\Handler\\CurlFactory","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php","line":159,"function":"finishError","class":"GuzzleHttp\\Handler\\CurlFactory","type":"::"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlHandler.php","line":47,"function":"finish","class":"GuzzleHttp\\Handler\\CurlFactory","type":"::"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php","line":142,"function":"__invoke","class":"GuzzleHttp\\Handler\\CurlHandler","type":"->"},{"file":"/var/www/html/cloud/lib/private/Http/Client/DnsPinMiddleware.php","line":150,"function":"{closure:{closure:GuzzleHttp\\Middleware::tap():137}:138}","class":"GuzzleHttp\\Middleware","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php","line":35,"function":"{closure:{closure:OC\\Http\\Client\\DnsPinMiddleware::addDnsPinning():104}:105}","class":"OC\\Http\\Client\\DnsPinMiddleware","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php","line":31,"function":"__invoke","class":"GuzzleHttp\\PrepareBodyMiddleware","type":"->"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/RedirectMiddleware.php","line":71,"function":"{closure:{closure:GuzzleHttp\\Middleware::cookies():28}:29}","class":"GuzzleHttp\\Middleware","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php","line":66,"function":"__invoke","class":"GuzzleHttp\\RedirectMiddleware","type":"->"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/HandlerStack.php","line":75,"function":"{closure:{closure:GuzzleHttp\\Middleware::httpErrors():60}:61}","class":"GuzzleHttp\\Middleware","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php","line":333,"function":"__invoke","class":"GuzzleHttp\\HandlerStack","type":"->"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php","line":169,"function":"transfer","class":"GuzzleHttp\\Client","type":"->"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php","line":189,"function":"requestAsync","class":"GuzzleHttp\\Client","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/lib/private/Http/Client/Client.php","line":219,"function":"request","class":"GuzzleHttp\\Client","type":"->"},{"file":"/var/www/html/cloud/lib/private/Installer.php","line":238,"function":"get","class":"OC\\Http\\Client\\Client","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/lib/private/Installer.php","line":104,"function":"downloadApp","class":"OC\\Installer","type":"->"},{"file":"/var/www/html/cloud/apps/settings/lib/Controller/AppSettingsController.php","line":663,"function":"updateAppstoreApp","class":"OC\\Installer","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/lib/private/AppFramework/Http/Dispatcher.php","line":205,"function":"updateApp","class":"OCA\\Settings\\Controller\\AppSettingsController","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/lib/private/AppFramework/Http/Dispatcher.php","line":118,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/html/cloud/lib/private/AppFramework/App.php","line":153,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/html/cloud/lib/private/Route/Router.php","line":321,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"/var/www/html/cloud/lib/base.php","line":1155,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/html/cloud/index.php","line":25,"function":"handleRequest","class":"OC","type":"::"}],"File":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php","Line":278,"message":"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'github.com' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://github.com/nextcloud-releases/notify_push/releases/download/v1.3.3/notify_push-v1.3.3.tar.gz","exception":"{\"class\":\"GuzzleHttp\\Exception\\RequestException\",\"message\":\"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'github.com' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://github.com/nextcloud-releases/notify_push/releases/download/v1.3.3/notify_push-v1.3.3.tar.gz\",\"code\":0,\"file\":\"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php:278\",\"trace\":\"#0 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php(207): GuzzleHttp\\Handler\\CurlFactory::createRejection()\\n#1 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php(159): GuzzleHttp\\Handler\\CurlFactory::finishError()\\n#2 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlHandler.php(47): GuzzleHttp\\Handler\\CurlFactory::finish()\\n#3 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php(142): GuzzleHttp\\Handler\\CurlHandler->__invoke()\\n#4 /var/www/html/cloud/lib/private/Http/Client/DnsPinMiddleware.php(150): GuzzleHttp\\Middleware::{closure:{closure:GuzzleHttp\\Middleware::tap():137}:138}()\\n#5 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php(35): OC\\Http\\Client\\DnsPinMiddleware->{closure:{closure:OC\\Http\\Client\\DnsPinMiddleware::addDnsPinning():104}:105}()\\n#6 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php(31): GuzzleHttp\\PrepareBodyMiddleware->__invoke()\\n#7 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/RedirectMiddleware.php(71): GuzzleHttp\\Middleware::{closure:{closure:GuzzleHttp\\Middleware::cookies():28}:29}()\\n#8 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php(66): GuzzleHttp\\RedirectMiddleware->__invoke()\\n#9 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/HandlerStack.php(75): GuzzleHttp\\Middleware::{closure:{closure:GuzzleHttp\\Middleware::httpErrors():60}:61}()\\n#10 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php(333): GuzzleHttp\\HandlerStack->__invoke()\\n#11 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php(169): GuzzleHttp\\Client->transfer()\\n#12 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php(189): GuzzleHttp\\Client->requestAsync()\\n#13 /var/www/html/cloud/lib/private/Http/Client/Client.php(219): GuzzleHttp\\Client->request()\\n#14 /var/www/html/cloud/lib/private/Installer.php(238): OC\\Http\\Client\\Client->get()\\n#15 /var/www/html/cloud/lib/private/Installer.php(104): OC\\Installer->downloadApp()\\n#16 /var/www/html/cloud/apps/settings/lib/Controller/AppSettingsController.php(663): OC\\Installer->updateAppstoreApp()\\n#17 /var/www/html/cloud/lib/private/AppFramework/Http/Dispatcher.php(205): OCA\\Settings\\Controller\\AppSettingsController->updateApp()\\n#18 /var/www/html/cloud/lib/private/AppFramework/Http/Dispatcher.php(118): OC\\AppFramework\\Http\\Dispatcher->executeController()\\n#19 /var/www/html/cloud/lib/private/AppFramework/App.php(153): OC\\AppFramework\\Http\\Dispatcher->dispatch()\\n#20 /var/www/html/cloud/lib/private/Route/Router.php(321): OC\\AppFramework\\App::main()\\n#21 /var/www/html/cloud/lib/base.php(1155): OC\\Route\\Router->match()\\n#22 /var/www/html/cloud/index.php(25): OC::handleRequest()\\n#23 {main}\"}","CustomMessage":"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'github.com' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://github.com/nextcloud-releases/notify_push/releases/download/v1.3.3/notify_push-v1.3.3.tar.gz"}}
{"reqId":"8sI9CCuYBhdD4mOhK3wk","level":3,"time":"2026-05-21T09:47:25+00:00","remoteAddr":"81.*.*.*","user":"<snip>","app":"no app in context","method":"GET","url":"/settings/apps/update/guests","scriptName":"/index.php","message":"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'github.com' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://github.com/nextcloud-releases/guests/releases/download/v4.7.3/guests-v4.7.3.tar.gz","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36","version":"33.0.3.2","exception":{"Exception":"GuzzleHttp\\Exception\\RequestException","Message":"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'github.com' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://github.com/nextcloud-releases/guests/releases/download/v4.7.3/guests-v4.7.3.tar.gz","Code":0,"Trace":[{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php","line":207,"function":"createRejection","class":"GuzzleHttp\\Handler\\CurlFactory","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php","line":159,"function":"finishError","class":"GuzzleHttp\\Handler\\CurlFactory","type":"::"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlHandler.php","line":47,"function":"finish","class":"GuzzleHttp\\Handler\\CurlFactory","type":"::"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php","line":142,"function":"__invoke","class":"GuzzleHttp\\Handler\\CurlHandler","type":"->"},{"file":"/var/www/html/cloud/lib/private/Http/Client/DnsPinMiddleware.php","line":150,"function":"{closure:{closure:GuzzleHttp\\Middleware::tap():137}:138}","class":"GuzzleHttp\\Middleware","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php","line":35,"function":"{closure:{closure:OC\\Http\\Client\\DnsPinMiddleware::addDnsPinning():104}:105}","class":"OC\\Http\\Client\\DnsPinMiddleware","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php","line":31,"function":"__invoke","class":"GuzzleHttp\\PrepareBodyMiddleware","type":"->"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/RedirectMiddleware.php","line":71,"function":"{closure:{closure:GuzzleHttp\\Middleware::cookies():28}:29}","class":"GuzzleHttp\\Middleware","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php","line":66,"function":"__invoke","class":"GuzzleHttp\\RedirectMiddleware","type":"->"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/HandlerStack.php","line":75,"function":"{closure:{closure:GuzzleHttp\\Middleware::httpErrors():60}:61}","class":"GuzzleHttp\\Middleware","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php","line":333,"function":"__invoke","class":"GuzzleHttp\\HandlerStack","type":"->"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php","line":169,"function":"transfer","class":"GuzzleHttp\\Client","type":"->"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php","line":189,"function":"requestAsync","class":"GuzzleHttp\\Client","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/lib/private/Http/Client/Client.php","line":219,"function":"request","class":"GuzzleHttp\\Client","type":"->"},{"file":"/var/www/html/cloud/lib/private/Installer.php","line":238,"function":"get","class":"OC\\Http\\Client\\Client","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/lib/private/Installer.php","line":104,"function":"downloadApp","class":"OC\\Installer","type":"->"},{"file":"/var/www/html/cloud/apps/settings/lib/Controller/AppSettingsController.php","line":663,"function":"updateAppstoreApp","class":"OC\\Installer","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/lib/private/AppFramework/Http/Dispatcher.php","line":205,"function":"updateApp","class":"OCA\\Settings\\Controller\\AppSettingsController","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/lib/private/AppFramework/Http/Dispatcher.php","line":118,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/html/cloud/lib/private/AppFramework/App.php","line":153,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/html/cloud/lib/private/Route/Router.php","line":321,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"/var/www/html/cloud/lib/base.php","line":1155,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/html/cloud/index.php","line":25,"function":"handleRequest","class":"OC","type":"::"}],"File":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php","Line":278,"message":"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'github.com' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://github.com/nextcloud-releases/guests/releases/download/v4.7.3/guests-v4.7.3.tar.gz","exception":"{\"class\":\"GuzzleHttp\\Exception\\RequestException\",\"message\":\"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'github.com' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://github.com/nextcloud-releases/guests/releases/download/v4.7.3/guests-v4.7.3.tar.gz\",\"code\":0,\"file\":\"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php:278\",\"trace\":\"#0 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php(207): GuzzleHttp\\Handler\\CurlFactory::createRejection()\\n#1 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php(159): GuzzleHttp\\Handler\\CurlFactory::finishError()\\n#2 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlHandler.php(47): GuzzleHttp\\Handler\\CurlFactory::finish()\\n#3 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php(142): GuzzleHttp\\Handler\\CurlHandler->__invoke()\\n#4 /var/www/html/cloud/lib/private/Http/Client/DnsPinMiddleware.php(150): GuzzleHttp\\Middleware::{closure:{closure:GuzzleHttp\\Middleware::tap():137}:138}()\\n#5 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php(35): OC\\Http\\Client\\DnsPinMiddleware->{closure:{closure:OC\\Http\\Client\\DnsPinMiddleware::addDnsPinning():104}:105}()\\n#6 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php(31): GuzzleHttp\\PrepareBodyMiddleware->__invoke()\\n#7 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/RedirectMiddleware.php(71): GuzzleHttp\\Middleware::{closure:{closure:GuzzleHttp\\Middleware::cookies():28}:29}()\\n#8 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php(66): GuzzleHttp\\RedirectMiddleware->__invoke()\\n#9 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/HandlerStack.php(75): GuzzleHttp\\Middleware::{closure:{closure:GuzzleHttp\\Middleware::httpErrors():60}:61}()\\n#10 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php(333): GuzzleHttp\\HandlerStack->__invoke()\\n#11 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php(169): GuzzleHttp\\Client->transfer()\\n#12 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php(189): GuzzleHttp\\Client->requestAsync()\\n#13 /var/www/html/cloud/lib/private/Http/Client/Client.php(219): GuzzleHttp\\Client->request()\\n#14 /var/www/html/cloud/lib/private/Installer.php(238): OC\\Http\\Client\\Client->get()\\n#15 /var/www/html/cloud/lib/private/Installer.php(104): OC\\Installer->downloadApp()\\n#16 /var/www/html/cloud/apps/settings/lib/Controller/AppSettingsController.php(663): OC\\Installer->updateAppstoreApp()\\n#17 /var/www/html/cloud/lib/private/AppFramework/Http/Dispatcher.php(205): OCA\\Settings\\Controller\\AppSettingsController->updateApp()\\n#18 /var/www/html/cloud/lib/private/AppFramework/Http/Dispatcher.php(118): OC\\AppFramework\\Http\\Dispatcher->executeController()\\n#19 /var/www/html/cloud/lib/private/AppFramework/App.php(153): OC\\AppFramework\\Http\\Dispatcher->dispatch()\\n#20 /var/www/html/cloud/lib/private/Route/Router.php(321): OC\\AppFramework\\App::main()\\n#21 /var/www/html/cloud/lib/base.php(1155): OC\\Route\\Router->match()\\n#22 /var/www/html/cloud/index.php(25): OC::handleRequest()\\n#23 {main}\"}","CustomMessage":"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'github.com' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://github.com/nextcloud-releases/guests/releases/download/v4.7.3/guests-v4.7.3.tar.gz"}}
Mysql is Percona Mysql Server 8.0, but irrelevant.
Bug description
On a Dual-Stack-Configuration with IPv4 and IPv6, downloading for install or update apps from appstore is sometimes not possible as ipv6 is usually preferred.
Github.com is ipv4 only.
Althought this kind of issue was handled in #56489, this bug is present already.
Steps to reproduce
Expected behavior
Download and install or update app successfully.
Nextcloud Server version
33
Operating system
Debian/Ubuntu
PHP engine version
PHP 8.4
Web server
Nginx
Database engine version
Other
Is this bug present after an update or on a fresh install?
None
Are you using the Nextcloud Server Encryption module?
None
What user-backends are you using?
Configuration report
List of activated Apps
Nextcloud Signing status
Nextcloud Logs
{"reqId":"t2EQ44NQVBzBu3tMkSXX","level":3,"time":"2026-05-21T09:47:25+00:00","remoteAddr":"81.*.*.*","user":"<snip>","app":"no app in context","method":"GET","url":"/settings/apps/update/notify_push","scriptName":"/index.php","message":"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'github.com' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://github.com/nextcloud-releases/notify_push/releases/download/v1.3.3/notify_push-v1.3.3.tar.gz","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36","version":"33.0.3.2","exception":{"Exception":"GuzzleHttp\\Exception\\RequestException","Message":"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'github.com' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://github.com/nextcloud-releases/notify_push/releases/download/v1.3.3/notify_push-v1.3.3.tar.gz","Code":0,"Trace":[{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php","line":207,"function":"createRejection","class":"GuzzleHttp\\Handler\\CurlFactory","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php","line":159,"function":"finishError","class":"GuzzleHttp\\Handler\\CurlFactory","type":"::"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlHandler.php","line":47,"function":"finish","class":"GuzzleHttp\\Handler\\CurlFactory","type":"::"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php","line":142,"function":"__invoke","class":"GuzzleHttp\\Handler\\CurlHandler","type":"->"},{"file":"/var/www/html/cloud/lib/private/Http/Client/DnsPinMiddleware.php","line":150,"function":"{closure:{closure:GuzzleHttp\\Middleware::tap():137}:138}","class":"GuzzleHttp\\Middleware","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php","line":35,"function":"{closure:{closure:OC\\Http\\Client\\DnsPinMiddleware::addDnsPinning():104}:105}","class":"OC\\Http\\Client\\DnsPinMiddleware","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php","line":31,"function":"__invoke","class":"GuzzleHttp\\PrepareBodyMiddleware","type":"->"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/RedirectMiddleware.php","line":71,"function":"{closure:{closure:GuzzleHttp\\Middleware::cookies():28}:29}","class":"GuzzleHttp\\Middleware","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php","line":66,"function":"__invoke","class":"GuzzleHttp\\RedirectMiddleware","type":"->"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/HandlerStack.php","line":75,"function":"{closure:{closure:GuzzleHttp\\Middleware::httpErrors():60}:61}","class":"GuzzleHttp\\Middleware","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php","line":333,"function":"__invoke","class":"GuzzleHttp\\HandlerStack","type":"->"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php","line":169,"function":"transfer","class":"GuzzleHttp\\Client","type":"->"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php","line":189,"function":"requestAsync","class":"GuzzleHttp\\Client","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/lib/private/Http/Client/Client.php","line":219,"function":"request","class":"GuzzleHttp\\Client","type":"->"},{"file":"/var/www/html/cloud/lib/private/Installer.php","line":238,"function":"get","class":"OC\\Http\\Client\\Client","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/lib/private/Installer.php","line":104,"function":"downloadApp","class":"OC\\Installer","type":"->"},{"file":"/var/www/html/cloud/apps/settings/lib/Controller/AppSettingsController.php","line":663,"function":"updateAppstoreApp","class":"OC\\Installer","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/lib/private/AppFramework/Http/Dispatcher.php","line":205,"function":"updateApp","class":"OCA\\Settings\\Controller\\AppSettingsController","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/lib/private/AppFramework/Http/Dispatcher.php","line":118,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/html/cloud/lib/private/AppFramework/App.php","line":153,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/html/cloud/lib/private/Route/Router.php","line":321,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"/var/www/html/cloud/lib/base.php","line":1155,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/html/cloud/index.php","line":25,"function":"handleRequest","class":"OC","type":"::"}],"File":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php","Line":278,"message":"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'github.com' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://github.com/nextcloud-releases/notify_push/releases/download/v1.3.3/notify_push-v1.3.3.tar.gz","exception":"{\"class\":\"GuzzleHttp\\Exception\\RequestException\",\"message\":\"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'github.com' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://github.com/nextcloud-releases/notify_push/releases/download/v1.3.3/notify_push-v1.3.3.tar.gz\",\"code\":0,\"file\":\"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php:278\",\"trace\":\"#0 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php(207): GuzzleHttp\\Handler\\CurlFactory::createRejection()\\n#1 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php(159): GuzzleHttp\\Handler\\CurlFactory::finishError()\\n#2 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlHandler.php(47): GuzzleHttp\\Handler\\CurlFactory::finish()\\n#3 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php(142): GuzzleHttp\\Handler\\CurlHandler->__invoke()\\n#4 /var/www/html/cloud/lib/private/Http/Client/DnsPinMiddleware.php(150): GuzzleHttp\\Middleware::{closure:{closure:GuzzleHttp\\Middleware::tap():137}:138}()\\n#5 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php(35): OC\\Http\\Client\\DnsPinMiddleware->{closure:{closure:OC\\Http\\Client\\DnsPinMiddleware::addDnsPinning():104}:105}()\\n#6 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php(31): GuzzleHttp\\PrepareBodyMiddleware->__invoke()\\n#7 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/RedirectMiddleware.php(71): GuzzleHttp\\Middleware::{closure:{closure:GuzzleHttp\\Middleware::cookies():28}:29}()\\n#8 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php(66): GuzzleHttp\\RedirectMiddleware->__invoke()\\n#9 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/HandlerStack.php(75): GuzzleHttp\\Middleware::{closure:{closure:GuzzleHttp\\Middleware::httpErrors():60}:61}()\\n#10 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php(333): GuzzleHttp\\HandlerStack->__invoke()\\n#11 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php(169): GuzzleHttp\\Client->transfer()\\n#12 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php(189): GuzzleHttp\\Client->requestAsync()\\n#13 /var/www/html/cloud/lib/private/Http/Client/Client.php(219): GuzzleHttp\\Client->request()\\n#14 /var/www/html/cloud/lib/private/Installer.php(238): OC\\Http\\Client\\Client->get()\\n#15 /var/www/html/cloud/lib/private/Installer.php(104): OC\\Installer->downloadApp()\\n#16 /var/www/html/cloud/apps/settings/lib/Controller/AppSettingsController.php(663): OC\\Installer->updateAppstoreApp()\\n#17 /var/www/html/cloud/lib/private/AppFramework/Http/Dispatcher.php(205): OCA\\Settings\\Controller\\AppSettingsController->updateApp()\\n#18 /var/www/html/cloud/lib/private/AppFramework/Http/Dispatcher.php(118): OC\\AppFramework\\Http\\Dispatcher->executeController()\\n#19 /var/www/html/cloud/lib/private/AppFramework/App.php(153): OC\\AppFramework\\Http\\Dispatcher->dispatch()\\n#20 /var/www/html/cloud/lib/private/Route/Router.php(321): OC\\AppFramework\\App::main()\\n#21 /var/www/html/cloud/lib/base.php(1155): OC\\Route\\Router->match()\\n#22 /var/www/html/cloud/index.php(25): OC::handleRequest()\\n#23 {main}\"}","CustomMessage":"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'github.com' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://github.com/nextcloud-releases/notify_push/releases/download/v1.3.3/notify_push-v1.3.3.tar.gz"}} {"reqId":"8sI9CCuYBhdD4mOhK3wk","level":3,"time":"2026-05-21T09:47:25+00:00","remoteAddr":"81.*.*.*","user":"<snip>","app":"no app in context","method":"GET","url":"/settings/apps/update/guests","scriptName":"/index.php","message":"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'github.com' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://github.com/nextcloud-releases/guests/releases/download/v4.7.3/guests-v4.7.3.tar.gz","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36","version":"33.0.3.2","exception":{"Exception":"GuzzleHttp\\Exception\\RequestException","Message":"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'github.com' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://github.com/nextcloud-releases/guests/releases/download/v4.7.3/guests-v4.7.3.tar.gz","Code":0,"Trace":[{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php","line":207,"function":"createRejection","class":"GuzzleHttp\\Handler\\CurlFactory","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php","line":159,"function":"finishError","class":"GuzzleHttp\\Handler\\CurlFactory","type":"::"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlHandler.php","line":47,"function":"finish","class":"GuzzleHttp\\Handler\\CurlFactory","type":"::"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php","line":142,"function":"__invoke","class":"GuzzleHttp\\Handler\\CurlHandler","type":"->"},{"file":"/var/www/html/cloud/lib/private/Http/Client/DnsPinMiddleware.php","line":150,"function":"{closure:{closure:GuzzleHttp\\Middleware::tap():137}:138}","class":"GuzzleHttp\\Middleware","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php","line":35,"function":"{closure:{closure:OC\\Http\\Client\\DnsPinMiddleware::addDnsPinning():104}:105}","class":"OC\\Http\\Client\\DnsPinMiddleware","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php","line":31,"function":"__invoke","class":"GuzzleHttp\\PrepareBodyMiddleware","type":"->"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/RedirectMiddleware.php","line":71,"function":"{closure:{closure:GuzzleHttp\\Middleware::cookies():28}:29}","class":"GuzzleHttp\\Middleware","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php","line":66,"function":"__invoke","class":"GuzzleHttp\\RedirectMiddleware","type":"->"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/HandlerStack.php","line":75,"function":"{closure:{closure:GuzzleHttp\\Middleware::httpErrors():60}:61}","class":"GuzzleHttp\\Middleware","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php","line":333,"function":"__invoke","class":"GuzzleHttp\\HandlerStack","type":"->"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php","line":169,"function":"transfer","class":"GuzzleHttp\\Client","type":"->"},{"file":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php","line":189,"function":"requestAsync","class":"GuzzleHttp\\Client","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/lib/private/Http/Client/Client.php","line":219,"function":"request","class":"GuzzleHttp\\Client","type":"->"},{"file":"/var/www/html/cloud/lib/private/Installer.php","line":238,"function":"get","class":"OC\\Http\\Client\\Client","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/lib/private/Installer.php","line":104,"function":"downloadApp","class":"OC\\Installer","type":"->"},{"file":"/var/www/html/cloud/apps/settings/lib/Controller/AppSettingsController.php","line":663,"function":"updateAppstoreApp","class":"OC\\Installer","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/lib/private/AppFramework/Http/Dispatcher.php","line":205,"function":"updateApp","class":"OCA\\Settings\\Controller\\AppSettingsController","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/cloud/lib/private/AppFramework/Http/Dispatcher.php","line":118,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/html/cloud/lib/private/AppFramework/App.php","line":153,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/html/cloud/lib/private/Route/Router.php","line":321,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"/var/www/html/cloud/lib/base.php","line":1155,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/html/cloud/index.php","line":25,"function":"handleRequest","class":"OC","type":"::"}],"File":"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php","Line":278,"message":"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'github.com' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://github.com/nextcloud-releases/guests/releases/download/v4.7.3/guests-v4.7.3.tar.gz","exception":"{\"class\":\"GuzzleHttp\\Exception\\RequestException\",\"message\":\"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'github.com' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://github.com/nextcloud-releases/guests/releases/download/v4.7.3/guests-v4.7.3.tar.gz\",\"code\":0,\"file\":\"/var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php:278\",\"trace\":\"#0 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php(207): GuzzleHttp\\Handler\\CurlFactory::createRejection()\\n#1 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php(159): GuzzleHttp\\Handler\\CurlFactory::finishError()\\n#2 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlHandler.php(47): GuzzleHttp\\Handler\\CurlFactory::finish()\\n#3 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php(142): GuzzleHttp\\Handler\\CurlHandler->__invoke()\\n#4 /var/www/html/cloud/lib/private/Http/Client/DnsPinMiddleware.php(150): GuzzleHttp\\Middleware::{closure:{closure:GuzzleHttp\\Middleware::tap():137}:138}()\\n#5 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php(35): OC\\Http\\Client\\DnsPinMiddleware->{closure:{closure:OC\\Http\\Client\\DnsPinMiddleware::addDnsPinning():104}:105}()\\n#6 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php(31): GuzzleHttp\\PrepareBodyMiddleware->__invoke()\\n#7 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/RedirectMiddleware.php(71): GuzzleHttp\\Middleware::{closure:{closure:GuzzleHttp\\Middleware::cookies():28}:29}()\\n#8 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php(66): GuzzleHttp\\RedirectMiddleware->__invoke()\\n#9 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/HandlerStack.php(75): GuzzleHttp\\Middleware::{closure:{closure:GuzzleHttp\\Middleware::httpErrors():60}:61}()\\n#10 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php(333): GuzzleHttp\\HandlerStack->__invoke()\\n#11 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php(169): GuzzleHttp\\Client->transfer()\\n#12 /var/www/html/cloud/3rdparty/guzzlehttp/guzzle/src/Client.php(189): GuzzleHttp\\Client->requestAsync()\\n#13 /var/www/html/cloud/lib/private/Http/Client/Client.php(219): GuzzleHttp\\Client->request()\\n#14 /var/www/html/cloud/lib/private/Installer.php(238): OC\\Http\\Client\\Client->get()\\n#15 /var/www/html/cloud/lib/private/Installer.php(104): OC\\Installer->downloadApp()\\n#16 /var/www/html/cloud/apps/settings/lib/Controller/AppSettingsController.php(663): OC\\Installer->updateAppstoreApp()\\n#17 /var/www/html/cloud/lib/private/AppFramework/Http/Dispatcher.php(205): OCA\\Settings\\Controller\\AppSettingsController->updateApp()\\n#18 /var/www/html/cloud/lib/private/AppFramework/Http/Dispatcher.php(118): OC\\AppFramework\\Http\\Dispatcher->executeController()\\n#19 /var/www/html/cloud/lib/private/AppFramework/App.php(153): OC\\AppFramework\\Http\\Dispatcher->dispatch()\\n#20 /var/www/html/cloud/lib/private/Route/Router.php(321): OC\\AppFramework\\App::main()\\n#21 /var/www/html/cloud/lib/base.php(1155): OC\\Route\\Router->match()\\n#22 /var/www/html/cloud/index.php(25): OC::handleRequest()\\n#23 {main}\"}","CustomMessage":"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'github.com' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://github.com/nextcloud-releases/guests/releases/download/v4.7.3/guests-v4.7.3.tar.gz"}}Additional info
Mysql is Percona Mysql Server 8.0, but irrelevant.
Possible Workaround:
server/lib/private/Installer.php
Line 239 in cbc8033
$client->get($app['releases'][0]['download'], ['sink' => $tempFile, 'timeout' => $timeout, 'force_ip_resolve' => 'v4']);