Server: can not retrive apps.json, request timed out after 10 seconds

Created on 1 Apr 2019  路  19Comments  路  Source: nextcloud/server

Steps to reproduce

  1. using a slow internet (less than 1Mbps)
  2. set the log level to 1
  3. visit the Apps section in NextCloud server panel and its sub parts.

Expected behaviour

The apps from app store should be shown.

Actual behaviour

For online apps from app store, a page with the text: No apps found for your version appears.

Server configuration

Raspberry Pi 3 (1G RAM + 4 Core CPU ARMv7 Processor rev 4 (v7l))
Operating system:
Debian 9 (Raspbian)
Web server:
Nginx 1.10.3
Database:
MariaDB 10.1
PHP version:
PHP 7.3
Nextcloud version:
15.0.5.3
Updated from an older Nextcloud/ownCloud or fresh install:
No
Where did you install Nextcloud from:
Official archived file from site, manually.
Signing status:


Signing status

No errors have been found.

List of activated apps:


App list

Enabled:
  - accessibility: 1.1.0
  - activity: 2.8.2
  - cloud_federation_api: 0.1.0
  - comments: 1.5.0
  - dav: 1.8.1
  - federatedfilesharing: 1.5.0
  - federation: 1.5.0
  - files: 1.10.0
  - files_pdfviewer: 1.4.0
  - files_sharing: 1.7.0
  - files_texteditor: 2.7.0
  - files_trashbin: 1.5.0
  - files_versions: 1.8.0
  - files_videoplayer: 1.4.0
  - firstrunwizard: 2.4.0
  - gallery: 18.2.0
  - logreader: 2.0.0
  - lookup_server_connector: 1.3.0
  - nextcloud_announcements: 1.4.0
  - notifications: 2.3.0
  - oauth2: 1.3.0
  - password_policy: 1.5.0
  - provisioning_api: 1.5.0
  - serverinfo: 1.5.0
  - sharebymail: 1.5.0
  - support: 1.0.0
  - survey_client: 1.3.0
  - systemtags: 1.5.0
  - theming: 1.6.0
  - twofactor_backupcodes: 1.4.1
  - updatenotification: 1.5.0
  - workflowengine: 1.5.0
Disabled:
  - admin_audit
  - encryption
  - files_external
  - user_ldap

Nextcloud configuration:


Config report

<?php
$CONFIG = array (
  'passwordsalt' => 'd+u+YFEoHATQnpIQEda9rp8MNhLjPy',
  'secret' => 'GrBJzreYaPAUb2995kVFM/eOPMUB4n1LWzPf3xcU6s88JwYh',
  'trusted_domains' => 
  array (
    0 => 'localhost', 'nextcloud.myhostname.xyz'
  ),
  'datadirectory' => '/var/www/nextcloud/data',
  'dbtype' => 'mysql',
  'version' => '15.0.5.3',
  'overwrite.cli.url' => 'http://localhost',
  'dbname' => 'nextcloud',
  'dbhost' => 'localhost',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'mysql.utf8mb4' => true,
  'dbuser' => 'nextcloud',
  'dbpassword' => 'mysecretpassword',
  'installed' => true,
  'instanceid' => 'ocv0i43mq4vh',
  'loglevel' => 1,
);

Are you using external storage, if yes which one: no

Are you using encryption: no

Are you using an external user-backend, if yes which one: no

Client configuration

Browser: Google Chrome 72

Operating system:
Debian 9

Logs

Web server error log


Web server error log

No error logs are generated.

Nextcloud log (data/nextcloud.log)


Nextcloud log

{"reqId":"Y4ILqYWLxVnVsuoCWicV","level":1,"time":"2019-04-01T09:58:06+00:00","remoteAddr":"192.168.1.1","user":"mehdi","app":"appstoreFetcher","method":"GET","url":"\/settings\/apps\/monitoring","message":{"Exception":"GuzzleHttp\\Exception\\ConnectException","Message":"cURL error 28: Operation timed out after 10000 milliseconds with 1050304 out of 1215078 bytes received (see http:\/\/curl.haxx.se\/libcurl\/c\/libcurl-errors.html)","Code":0,"Trace":[{"file":"\/var\/www\/nextcloud\/3rdparty\/guzzlehttp\/guzzle\/src\/Handler\/CurlFactory.php","line":149,"function":"createRejection","class":"GuzzleHttp\\Handler\\CurlFactory","type":"::","args":[{"sink":{"__class__":"GuzzleHttp\\Psr7\\Stream"},"headers":["Date: Mon, 01 Apr 2019 09:57:56 GMT","Server: nginx\/1.10.3 (Ubuntu)","Strict-Transport-Security: max-age=15768000; includeSubDomains; preload","Content-Type: application\/json","Content-Length: 1215078","Content-Language: en","Vary: Accept-Language,Cookie","ETag: \"2019-04-01 09:00:10.955060+00:00\"","x-xss-protection: 1; mode=block","x-content-type-options: nosniff","Allow: GET, DELETE, HEAD, OPTIONS","X-Frame-Options: SAMEORIGIN","Content-Security-Policy: img-src *; style-src 'self'; form-action 'self'; connect-src 'self'; script-src 'self'; default-src 'none'; font-src 'self'"],"response":{"__class__":"GuzzleHttp\\Psr7\\Response"},"request":{"__class__":"GuzzleHttp\\Psr7\\Request"},"options":{"verify":"\/var\/www\/nextcloud\/data\/files_external\/rootcerts.crt","timeout":10,"synchronous":true,"handler":{"__class__":"GuzzleHttp\\HandlerStack"},"allow_redirects":{"max":5,"protocols":["http","https"],"strict":false,"referer":false,"track_redirects":false},"http_errors":true,"decode_content":true,"cookies":false},"errno":28,"onHeadersException":null,"__class__":"GuzzleHttp\\Handler\\EasyHandle"},{"errno":28,"error":"Operation timed out after 10000 milliseconds with 1050304 out of 1215078 bytes received","url":"https:\/\/apps.nextcloud.com\/api\/v1\/platform\/15.0.5\/apps.json","content_type":"application\/json","http_code":200,"header_size":591,"request_size":170,"filetime":-1,"ssl_verify_result":0,"redirect_count":0,"total_time":10.000916,"namelookup_time":7.9e-5,"connect_time":0.133558,"pretransfer_time":0.520545,"size_upload":0,"size_download":1050304,"speed_download":105020,"speed_upload":0,"download_content_length":1215078,"upload_content_length":-1,"starttransfer_time":0.754305,"redirect_time":0,"redirect_url":"","primary_ip":"88.198.160.138","certinfo":[],"primary_port":443,"local_ip":"192.168.1.90","local_port":41028,"http_version":2,"protocol":2,"ssl_verifyresult":0,"scheme":"HTTPS"}]},{"file":"\/var\/www\/nextcloud\/3rdparty\/guzzlehttp\/guzzle\/src\/Handler\/CurlFactory.php","line":102,"function":"finishError","class":"GuzzleHttp\\Handler\\CurlFactory","type":"::","args":[{"__class__":"GuzzleHttp\\Handler\\CurlHandler"},{"sink":{"__class__":"GuzzleHttp\\Psr7\\Stream"},"headers":["Date: Mon, 01 Apr 2019 09:57:56 GMT","Server: nginx\/1.10.3 (Ubuntu)","Strict-Transport-Security: max-age=15768000; includeSubDomains; preload","Content-Type: application\/json","Content-Length: 1215078","Content-Language: en","Vary: Accept-Language,Cookie","ETag: \"2019-04-01 09:00:10.955060+00:00\"","x-xss-protection: 1; mode=block","x-content-type-options: nosniff","Allow: GET, DELETE, HEAD, OPTIONS","X-Frame-Options: SAMEORIGIN","Content-Security-Policy: img-src *; style-src 'self'; form-action 'self'; connect-src 'self'; script-src 'self'; default-src 'none'; font-src 'self'"],"response":{"__class__":"GuzzleHttp\\Psr7\\Response"},"request":{"__class__":"GuzzleHttp\\Psr7\\Request"},"options":{"verify":"\/var\/www\/nextcloud\/data\/files_external\/rootcerts.crt","timeout":10,"synchronous":true,"handler":{"__class__":"GuzzleHttp\\HandlerStack"},"allow_redirects":{"max":5,"protocols":["http","https"],"strict":false,"referer":false,"track_redirects":false},"http_errors":true,"decode_content":true,"cookies":false},"errno":28,"onHeadersException":null,"__class__":"GuzzleHttp\\Handler\\EasyHandle"},{"__class__":"GuzzleHttp\\Handler\\CurlFactory"}]},{"file":"\/var\/www\/nextcloud\/3rdparty\/guzzlehttp\/guzzle\/src\/Handler\/CurlHandler.php","line":43,"function":"finish","class":"GuzzleHttp\\Handler\\CurlFactory","type":"::","args":[{"__class__":"GuzzleHttp\\Handler\\CurlHandler"},{"sink":{"__class__":"GuzzleHttp\\Psr7\\Stream"},"headers":["Date: Mon, 01 Apr 2019 09:57:56 GMT","Server: nginx\/1.10.3 (Ubuntu)","Strict-Transport-Security: max-age=15768000; includeSubDomains; preload","Content-Type: application\/json","Content-Length: 1215078","Content-Language: en","Vary: Accept-Language,Cookie","ETag: \"2019-04-01 09:00:10.955060+00:00\"","x-xss-protection: 1; mode=block","x-content-type-options: nosniff","Allow: GET, DELETE, HEAD, OPTIONS","X-Frame-Options: SAMEORIGIN","Content-Security-Policy: img-src *; style-src 'self'; form-action 'self'; connect-src 'self'; script-src 'self'; default-src 'none'; font-src 'self'"],"response":{"__class__":"GuzzleHttp\\Psr7\\Response"},"request":{"__class__":"GuzzleHttp\\Psr7\\Request"},"options":{"verify":"\/var\/www\/nextcloud\/data\/files_external\/rootcerts.crt","timeout":10,"synchronous":true,"handler":{"__class__":"GuzzleHttp\\HandlerStack"},"allow_redirects":{"max":5,"protocols":["http","https"],"strict":false,"referer":false,"track_redirects":false},"http_errors":true,"decode_content":true,"cookies":false},"errno":28,"onHeadersException":null,"__class__":"GuzzleHttp\\Handler\\EasyHandle"},{"__class__":"GuzzleHttp\\Handler\\CurlFactory"}]},{"file":"\/var\/www\/nextcloud\/3rdparty\/guzzlehttp\/guzzle\/src\/Handler\/Proxy.php","line":28,"function":"__invoke","class":"GuzzleHttp\\Handler\\CurlHandler","type":"->","args":["*** sensitive parameter replaced ***","*** sensitive parameter replaced ***"]},{"file":"\/var\/www\/nextcloud\/3rdparty\/guzzlehttp\/guzzle\/src\/Handler\/Proxy.php","line":51,"function":"GuzzleHttp\\Handler\\{closure}","class":"GuzzleHttp\\Handler\\Proxy","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"\/var\/www\/nextcloud\/3rdparty\/guzzlehttp\/guzzle\/src\/PrepareBodyMiddleware.php","line":37,"function":"GuzzleHttp\\Handler\\{closure}","class":"GuzzleHttp\\Handler\\Proxy","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"\/var\/www\/nextcloud\/3rdparty\/guzzlehttp\/guzzle\/src\/Middleware.php","line":30,"function":"__invoke","class":"GuzzleHttp\\PrepareBodyMiddleware","type":"->","args":["*** sensitive parameter replaced ***","*** sensitive parameter replaced ***"]},{"file":"\/var\/www\/nextcloud\/3rdparty\/guzzlehttp\/guzzle\/src\/RedirectMiddleware.php","line":70,"function":"GuzzleHttp\\{closure}","class":"GuzzleHttp\\Middleware","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"\/var\/www\/nextcloud\/3rdparty\/guzzlehttp\/guzzle\/src\/Middleware.php","line":60,"function":"__invoke","class":"GuzzleHttp\\RedirectMiddleware","type":"->","args":["*** sensitive parameter replaced ***","*** sensitive parameter replaced ***"]},{"file":"\/var\/www\/nextcloud\/3rdparty\/guzzlehttp\/guzzle\/src\/HandlerStack.php","line":67,"function":"GuzzleHttp\\{closure}","class":"GuzzleHttp\\Middleware","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"\/var\/www\/nextcloud\/3rdparty\/guzzlehttp\/guzzle\/src\/Client.php","line":277,"function":"__invoke","class":"GuzzleHttp\\HandlerStack","type":"->","args":["*** sensitive parameter replaced ***","*** sensitive parameter replaced ***"]},{"file":"\/var\/www\/nextcloud\/3rdparty\/guzzlehttp\/guzzle\/src\/Client.php","line":125,"function":"transfer","class":"GuzzleHttp\\Client","type":"->","args":["*** sensitive parameter replaced ***","*** sensitive parameter replaced ***"]},{"file":"\/var\/www\/nextcloud\/3rdparty\/guzzlehttp\/guzzle\/src\/Client.php","line":131,"function":"requestAsync","class":"GuzzleHttp\\Client","type":"->","args":["get",{"__class__":"GuzzleHttp\\Psr7\\Uri"},{"verify":"\/var\/www\/nextcloud\/data\/files_external\/rootcerts.crt","timeout":10,"synchronous":true,"handler":{"__class__":"GuzzleHttp\\HandlerStack"},"allow_redirects":{"max":5,"protocols":["http","https"],"strict":false,"referer":false,"track_redirects":false},"http_errors":true,"decode_content":true,"cookies":false,"_conditional":{"User-Agent":"GuzzleHttp\/6.3.3 curl\/7.52.1 PHP\/7.3.3-1+0~20190307202245.32+stretch~1.gbp32ebb2"}}]},{"file":"\/var\/www\/nextcloud\/lib\/private\/Http\/Client\/Client.php","line":161,"function":"request","class":"GuzzleHttp\\Client","type":"->","args":["get","https:\/\/apps.nextcloud.com\/api\/v1\/platform\/15.0.5\/apps.json",{"verify":"\/var\/www\/nextcloud\/data\/files_external\/rootcerts.crt","timeout":10,"synchronous":true}]},{"file":"\/var\/www\/nextcloud\/lib\/private\/App\/AppStore\/Fetcher\/Fetcher.php","line":106,"function":"get","class":"OC\\Http\\Client\\Client","type":"->","args":["https:\/\/apps.nextcloud.com\/api\/v1\/platform\/15.0.5\/apps.json",{"timeout":10}]},{"file":"\/var\/www\/nextcloud\/lib\/private\/App\/AppStore\/Fetcher\/AppFetcher.php","line":80,"function":"fetch","class":"OC\\App\\AppStore\\Fetcher\\Fetcher","type":"->","args":["",""]},{"file":"\/var\/www\/nextcloud\/lib\/private\/App\/AppStore\/Fetcher\/Fetcher.php","line":170,"function":"fetch","class":"OC\\App\\AppStore\\Fetcher\\AppFetcher","type":"->","args":["",""]},{"file":"\/var\/www\/nextcloud\/lib\/private\/Installer.php","line":385,"function":"get","class":"OC\\App\\AppStore\\Fetcher\\Fetcher","type":"->","args":[]},{"file":"\/var\/www\/nextcloud\/settings\/Controller\/AppSettingsController.php","line":156,"function":"isUpdateAvailable","class":"OC\\Installer","type":"->","args":["logreader"]},{"file":"\/var\/www\/nextcloud\/settings\/Controller\/AppSettingsController.php","line":139,"function":"getAppsWithUpdates","class":"OC\\Settings\\Controller\\AppSettingsController","type":"->","args":[]},{"file":"\/var\/www\/nextcloud\/lib\/private\/AppFramework\/Http\/Dispatcher.php","line":166,"function":"viewApps","class":"OC\\Settings\\Controller\\AppSettingsController","type":"->","args":[]},{"file":"\/var\/www\/nextcloud\/lib\/private\/AppFramework\/Http\/Dispatcher.php","line":99,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OC\\Settings\\Controller\\AppSettingsController"},"viewApps"]},{"file":"\/var\/www\/nextcloud\/lib\/private\/AppFramework\/App.php","line":118,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OC\\Settings\\Controller\\AppSettingsController"},"viewApps"]},{"file":"\/var\/www\/nextcloud\/lib\/private\/AppFramework\/Routing\/RouteActionHandler.php","line":47,"function":"main","class":"OC\\AppFramework\\App","type":"::","args":["OC\\Settings\\Controller\\AppSettingsController","viewApps",{"__class__":"OC\\AppFramework\\DependencyInjection\\DIContainer"},{"category":"monitoring","id":"","_route":"settings.AppSettings.viewApps"}]},{"function":"__invoke","class":"OC\\AppFramework\\Routing\\RouteActionHandler","type":"->","args":[{"category":"monitoring","id":"","_route":"settings.AppSettings.viewApps"}]},{"file":"\/var\/www\/nextcloud\/lib\/private\/Route\/Router.php","line":297,"function":"call_user_func","args":[{"__class__":"OC\\AppFramework\\Routing\\RouteActionHandler"},{"category":"monitoring","id":"","_route":"settings.AppSettings.viewApps"}]},{"file":"\/var\/www\/nextcloud\/lib\/base.php","line":987,"function":"match","class":"OC\\Route\\Router","type":"->","args":["\/settings\/apps\/monitoring"]},{"file":"\/var\/www\/nextcloud\/index.php","line":42,"function":"handleRequest","class":"OC","type":"::","args":[]}],"File":"\/var\/www\/nextcloud\/3rdparty\/guzzlehttp\/guzzle\/src\/Handler\/CurlFactory.php","Line":185,"CustomMessage":"Could not connect to appstore"},"userAgent":"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/72.0.3626.119 Safari\/537.36","version":"15.0.5.3"}

Browser log


Browser log

No javascript console error, No any http error codes.

1. to develop bug good first issue performance 馃殌

Most helpful comment

Because is an external download and you cannot know how fast it will be dowloaded setting the timeout to 10 seconds is a bug. Should be 300.

All 19 comments

I get the same error behind a 1Mbps DSL link:

[appstoreFetcher] Info: GuzzleHttp\Exception\ConnectException: cURL error 28: Operation timed out after 10000 milliseconds with 1122304 out of 2952506 bytes received (see http://curl.haxx.se/libcurl/c/libcurl-errors.html) at <<closure>>

 0. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php line 149
    GuzzleHttp\Handler\CurlFactory::createRejection(GuzzleHttp\Handl ... l}, {errno: 28,error ... 8})
 1. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php line 102
    GuzzleHttp\Handler\CurlFactory::finishError(GuzzleHttp\Handler\CurlHandler {}, GuzzleHttp\Handl ... l}, GuzzleHttp\Handler\CurlFactory {})
 2. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlHandler.php line 43
    GuzzleHttp\Handler\CurlFactory::finish(GuzzleHttp\Handler\CurlHandler {}, GuzzleHttp\Handl ... l}, GuzzleHttp\Handler\CurlFactory {})
 3. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/Proxy.php line 28
    GuzzleHttp\Handler\CurlHandler->__invoke("*** sensitive parameter replaced ***", "*** sensitive parameter replaced ***")
 4. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/Proxy.php line 51
    GuzzleHttp\Handler\Proxy::GuzzleHttp\Handler\{closure}("*** sensitive parameters replaced ***")
 5. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php line 37
    GuzzleHttp\Handler\Proxy::GuzzleHttp\Handler\{closure}("*** sensitive parameters replaced ***")
 6. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php line 30
    GuzzleHttp\PrepareBodyMiddleware->__invoke("*** sensitive parameter replaced ***", "*** sensitive parameter replaced ***")
 7. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/RedirectMiddleware.php line 70
    GuzzleHttp\Middleware::GuzzleHttp\{closure}("*** sensitive parameters replaced ***")
 8. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php line 60
    GuzzleHttp\RedirectMiddleware->__invoke("*** sensitive parameter replaced ***", "*** sensitive parameter replaced ***")
 9. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/HandlerStack.php line 67
    GuzzleHttp\Middleware::GuzzleHttp\{closure}("*** sensitive parameters replaced ***")
10. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php line 277
    GuzzleHttp\HandlerStack->__invoke("*** sensitive parameter replaced ***", "*** sensitive parameter replaced ***")
11. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php line 125
    GuzzleHttp\Client->transfer("*** sensitive parameter replaced ***", "*** sensitive parameter replaced ***")
12. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php line 131
    GuzzleHttp\Client->requestAsync("get", GuzzleHttp\Psr7\Uri {}, {verify: "/var/w ... }})
13. /var/www/nextcloud/lib/private/Http/Client/Client.php line 161
    GuzzleHttp\Client->request("get", "https://apps.ne ... n", {verify: "/var/w ... e})
14. /var/www/nextcloud/lib/private/App/AppStore/Fetcher/Fetcher.php line 108
    OC\Http\Client\Client->get("https://apps.ne ... n", {timeout: 10})
15. /var/www/nextcloud/lib/private/App/AppStore/Fetcher/AppFetcher.php line 84
    OC\App\AppStore\Fetcher\Fetcher->fetch("", "")
16. /var/www/nextcloud/lib/private/App/AppStore/Fetcher/Fetcher.php line 172
    OC\App\AppStore\Fetcher\AppFetcher->fetch("", "")
17. /var/www/nextcloud/lib/private/Installer.php line 388
    OC\App\AppStore\Fetcher\Fetcher->get()
18. /var/www/nextcloud/settings/Controller/AppSettingsController.php line 259
    OC\Installer->isUpdateAvailable("firstrunwizard")
19. <<closure>>
    OC\Settings\Controller\AppSettingsController->OC\Settings\Controller\{closure}("*** sensitive parameters replaced ***")
20. /var/www/nextcloud/settings/Controller/AppSettingsController.php line 252
    undefinedundefinedarray_map(Closure {}, {firstrunwizard: ... }})
21. /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php line 166
    OC\Settings\Controller\AppSettingsController->listApps()
22. /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php line 99
    OC\AppFramework\Http\Dispatcher->executeController(OC\Settings\Cont ... {}, "listApps")
23. /var/www/nextcloud/lib/private/AppFramework/App.php line 126
    OC\AppFramework\Http\Dispatcher->dispatch(OC\Settings\Cont ... {}, "listApps")
24. /var/www/nextcloud/lib/private/AppFramework/Routing/RouteActionHandler.php line 47
    OC\AppFramework\App::main("OC\\Settings\\C ... r", "listApps", OC\AppFramework\ ... {}, {_route: "settings.AppSettings.listApps"})
25. <<closure>>
    OC\AppFramework\Routing\RouteActionHandler->__invoke({_route: "settings.AppSettings.listApps"})
26. /var/www/nextcloud/lib/private/Route/Router.php line 297
    undefinedundefinedcall_user_func(OC\AppFramework\ ... {}, {_route: "settings.AppSettings.listApps"})
27. /var/www/nextcloud/lib/base.php line 975
    OC\Route\Router->match("/settings/apps/list")
28. /var/www/nextcloud/index.php line 42
    OC::handleRequest()

GET /index.php/settings/apps/list
from 192.168.a.b by xxxxxxxx at 2019-05-03T11:28:09+00:00

in /lib/private/App/AppStore/Fetcher/Fetcher.php there's a 10 second timeout.
Just search for

'timeout' => 10,

and change it. No matter how fast is your internet connection the download is affected also by nexcloud hosting.

Because is an external download and you cannot know how fast it will be dowloaded setting the timeout to 10 seconds is a bug. Should be 300.

Mind to open a pull request with your proposed change? 300 is way to high but something like ~30 could work.

I needed 200. 30 wasn't enough for me

30 has been enough for me

Just ran in to this when installing on a clients server. They will probably have more installations. a 10 second timeout for a download is far to low. It should be at least 30 or more.

This was a bit trickier than thought. It will need a more proper fix than just raising the timeout. And there are also more timeouts that might break things on awfully slow connections.

Raising the timeout seemed to work for me. Running nextcloud 16 on a Rock64v2 with Ubuntu 18.04

A configurable setting (regarding the different timeouts) or a box to tick ("This instance is behind a slow internet connection (ticking this box sets high timeout values for downloads of apps") might be the way to go.

I also experience this behaviour often, and it is a quite confusing user experience (first, nextcloud tells me there is an update for an app, next it tells me I do not have any apps). A simple error message or better empty-context-string (instead of "_There is no apps for your version_" -> "_Could not download list of apps for your version, or the list was empty_") might also be helpful.

Nice! Raising the timeout fixed the app store for me (Nextcloud server 16.0.3).

Hello!
I have the same issue. I started out with a fresh installation with Nextcloud 16.0.4, MariaDB, Apache2 and PHP7.3 on a Raspberry Pi 3 B+ and kept it local at first. App installation worked fine so far.
Now I set up to be reached from the internet via HTTPS, did a few configurations and now the app store shows the above error. Increasing the timeout value to 300 did not help.
What else might be the problem and how may I check? If any logs would be helpful I'm sure I can provide them but I don't know what would be helpful.

I'd appreciate any help very much!

in /lib/private/App/AppStore/Fetcher/Fetcher.php there's a 10 second timeout.
Just search for

'timeout' => 10,

and change it. No matter how fast is your internet connection the download is affected also by nexcloud hosting.

thanks @alfrenovsky i use a proxy for my nextcloud and it has never completed the download in 10 seconds.
I thought it was a setting in cURL but increasing this timeout is the correct setting.

I think this issue can now be closed as #16972 has been merged, can't it?

I think this issue can now be closed as #16972 has been merged, can't it?

No. The timeout for apps.json is still 10 seconds.

I'm against to the idea of increasing the timeout. Why there's no any methods to monitor the download of apps.json?
It would even be better to notify the user about the status of background processes, something like "Updating Repository List..." text in the center of page.

Or just increase the timeout. There is no reason to cancel the download just because its going to take 12seconds.

This was such an annoying issue i almost stopped using nextcloud completely.

To summurize: Timeout value will stay at 10 seconds for now. Please have a look at https://github.com/nextcloud/server/pull/16149 for all the technical details. If you run into timeout issues and need a solution now: Increase the timeout in lib/private/App/AppStore/Fetcher/Fetcher.php.

The one fits all solution is a background job. Hopefully someone from the community or a paid engineer will implement this someday.

I feel bad about locking the discussion but we are looping. Please use https://help.github.com/en/articles/about-conversations-on-github#reacting-to-ideas-in-comments for +1. I鈥檓 thankful for your support and understanding :+1:

cc @jospoortvliet

Was this page helpful?
0 / 5 - 0 ratings