Appstore broken after upgrade to Nextcloud 30

My issue template infos

Server configuration detail

Operating system: Linux 5.15.149-1-pve #1 SMP PVE 5.15.149-1 (2024-03-29T14:24Z) x86_64

Webserver: Apache/2.4.41 (Ubuntu) (fpm-fcgi)

Database: mysql 10.3.39

PHP version: 8.2.27

Modules loaded: Core, date, libxml, openssl, pcre, zlib, filter, hash, json, random, Reflection, SPL, session, standard, sodium, cgi-fcgi, mysqlnd, PDO, xml, apcu, bcmath, bz2, calendar, ctype, curl, dom, mbstring, FFI, fileinfo, ftp, gd, gettext, gmp, iconv, igbinary, imagick, intl, ldap, exif, msgpack, mysqli, pdo_mysql, Phar, posix, readline, shmop, SimpleXML, sockets, sysvmsg, sysvsem, sysvshm, tokenizer, xmlreader, xmlwriter, xsl, zip, memcached, redis, Zend OPcache

Nextcloud version: 30.0.4 - 30.0.4.1

Updated from an older Nextcloud/ownCloud or fresh install:

Where did you install Nextcloud from: web

Signing status

List of activated apps
Enabled:
 - activity: 3.0.0
 - admin_audit: 1.20.0
 - app_api: 4.0.3
 - approval: 2.1.0
 - bruteforcesettings: 3.0.0
 - calendar: 5.0.8
 - checksum: 1.2.5
 - cloud_federation_api: 1.13.0
 - comments: 1.20.1
 - contacts: 6.1.2
 - contactsinteraction: 1.11.0
 - dashboard: 7.10.0
 - dav: 1.31.1
 - deck: 1.14.2
 - event_update_notification: 2.5.0
 - federatedfilesharing: 1.20.0
 - federation: 1.20.0
 - files: 2.2.0
 - files_automatedtagging: 1.20.0
 - files_downloadlimit: 3.0.0
 - files_pdfviewer: 3.0.0
 - files_reminders: 1.3.0
 - files_sharing: 1.22.0
 - files_trashbin: 1.20.1
 - files_versions: 1.23.0
 - flow_notifications: 1.10.1
 - geoblocker: 0.5.15
 - gpoddersync: 3.11.0
 - gpxpod: 7.0.4
 - integration_github: 3.1.1
 - integration_gitlab: 3.1.2
 - integration_mastodon: 3.0.1
 - integration_openstreetmap: 2.0.1
 - integration_reddit: 2.0.5
 - integration_zammad: 3.0.1
 - logreader: 3.0.0
 - lookup_server_connector: 1.18.0
 - notifications: 3.0.0
 - notify_push: 0.7.0
 - oauth2: 1.18.1
 - onlyoffice: 9.5.0
 - password_policy: 2.0.0
 - phonetrack: 0.8.2
 - photos: 3.0.2
 - previewgenerator: 5.7.0
 - provisioning_api: 1.20.0
 - quota_warning: 1.20.0
 - related_resources: 1.5.0
 - serverinfo: 2.0.0
 - settings: 1.13.0
 - sharebymail: 1.20.0
 - smb_test: 0.3.10
 - snappymail: 2.38.2
 - spreed: 20.1.1
 - support: 2.0.0
 - systemtags: 1.20.0
 - tasks: 0.16.1
 - text: 4.1.0
 - theming: 2.5.0
 - twofactor_backupcodes: 1.19.0
 - twofactor_totp: 12.0.0-dev
 - updatenotification: 1.20.0
 - user_status: 1.10.0
 - viewer: 3.0.0
 - weather_status: 1.10.0
 - webhook_listeners: 1.1.0-dev
 - workflow_pdf_converter: 1.15.0
 - workflow_script: 1.15.0
 - workflowengine: 2.12.0
Disabled:
 - circles: 27.0.1
 - encryption: 2.4.0
 - files_external: 1.22.0
 - files_photospheres: 1.30.0
 - files_rightclick: 1.6.0
 - firstrunwizard: 2.7.0
 - holiday_calendars: 0.3.0
 - nextcloud_announcements: 1.7.0
 - privacy: 1.2.0
 - recommendations: 0.6.0
 - survey_client: 1.6.0
 - suspicious_login
 - twofactor_email: 2.7.4
 - twofactor_nextcloud_notification
 - uppush: 2.1.2
 - user_ldap: 1.21.0
 - webhooks: 0.4.3
Configuration (config/config.php)
{
    "instanceid": "***REMOVED SENSITIVE VALUE***",
    "installed": true,
    "dbname": "***REMOVED SENSITIVE VALUE***",
    "dbhost": "***REMOVED SENSITIVE VALUE***",
    "dbport": "",
    "dbtableprefix": "oc_",
    "mysql.utf8mb4": true,
    "dbuser": "***REMOVED SENSITIVE VALUE***",
    "dbpassword": "***REMOVED SENSITIVE VALUE***",
    "memcache.local": "\\OC\\Memcache\\APCu",
    "memcache.locking": "\\OC\\Memcache\\Redis",
    "memcache.distributed": "\\OC\\Memcache\\Redis",
    "opcache.interned_strings_buffer": 10,
    "redis": {
        "host": "***REMOVED SENSITIVE VALUE***",
        "port": 6379
    },
    "datadirectory": "***REMOVED SENSITIVE VALUE***",
    "version": "30.0.4.1",
    "passwordsalt": "***REMOVED SENSITIVE VALUE***",
    "secret": "***REMOVED SENSITIVE VALUE***",
    "trusted_domains": [
        "192.168.2.205",
        "***.de",
    ],
    "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
    "dbtype": "mysql",
    "overwrite.cli.url": "https:\/\/***.de",
    "overwritehost": "***.de",
    "overwriteprotocol": "https",
    "ldapIgnoreNamingRules": false,
    "mail_from_address": "***REMOVED SENSITIVE VALUE***",
    "mail_smtpmode": "smtp",
    "mail_sendmailmode": "smtp",
    "mail_domain": "***REMOVED SENSITIVE VALUE***",
    "mail_smtpsecure": "ssl",
    "mail_smtpauthtype": "LOGIN",
    "mail_smtpauth": 1,
    "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
    "mail_smtpport": "465",
    "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
    "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
    "maintenance": false,
    "theme": "",
    "loglevel": 0,
    "debug": true,
    "default_phone_region": "DE",
    "encryption.legacy_format_support": false,
    "data-fingerprint": "af9223244d32c79e69b0902f876e0e52",
    "maintenance_window_start": 1,
    "appstoreenabled": "true",
    "appstoreurl": "https:\/\/apps.nextcloud.com"
}

Cron Configuration: Array ( [backgroundjobs_mode] => cron [lastcron] => 1736460002 )

External storages: files_external is disabled

Encryption: no

User-backends:

  • OC\User\Database

Subscription:

  • No valid subscription key set

Talk configuration:

STUN servers

TURN servers

  • turn:***.de:53748 - udp,tcp

Signaling servers (mode: default):

Recording servers:

  • Recording is enabled
  • Recording consent is set to “default”
  • no recording server configured

Browser: Mozilla/5.0 (X11; Linux x86_64; rv:133.0) Gecko/20100101 Firefox/133.0

Summary of the issue you are facing:

After upgrading from Nextcloud 29 to 30 i cannot access the Appstore anymore.

Steps to replicate it (hint: details matter!):

  1. Upgrade from Nextcloud 29 to 30
  2. Open the Apps overview as admin
  3. View error

Log entries

What i see in the browser:

Trace

#0 /var/www/nextcloud/lib/private/Files/SimpleFS/SimpleFile.php(55): OC\Files\Node\File->getContent()
#1 /var/www/nextcloud/lib/private/App/AppStore/Fetcher/Fetcher.php(136): OC\Files\SimpleFS\SimpleFile->getContent()
#2 /var/www/nextcloud/lib/private/App/AppStore/Fetcher/AppFetcher.php(155): OC\App\AppStore\Fetcher\Fetcher->get()
#3 /var/www/nextcloud/lib/private/Installer.php(381): OC\App\AppStore\Fetcher\AppFetcher->get()
#4 /var/www/nextcloud/apps/settings/lib/Controller/AppSettingsController.php(202): OC\Installer->isUpdateAvailable()
#5 /var/www/nextcloud/apps/settings/lib/Controller/AppSettingsController.php(92): OCA\Settings\Controller\AppSettingsController->getAppsWithUpdates()
#6 /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(208): OCA\Settings\Controller\AppSettingsController->viewApps()
#7 /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(114): OC\AppFramework\Http\Dispatcher->executeController()
#8 /var/www/nextcloud/lib/private/AppFramework/App.php(161): OC\AppFramework\Http\Dispatcher->dispatch()
#9 /var/www/nextcloud/lib/private/Route/Router.php(302): OC\AppFramework\App::main()
#10 /var/www/nextcloud/lib/base.php(1003): OC\Route\Router->match()
#11 /var/www/nextcloud/index.php(24): OC::handleRequest()
#12 {main}

What i see in the logs

"reqId":"hCxF3L0mmJKY2VPB8XQ7","level":3,"time":"2025-01-09T22:09:39+00:00","remoteAddr":"192.168.2.142","user":"admin","app":"PHP","method":"GET","url":"/index.php/settings/apps","message":"file_get_contents(/mnt/nextcloud/appdata_oc97brq1i9id/appstore/apps.json): Failed to open stream: No such file or directory at /var/www/nextcloud/lib/private/Files/Storage/Local.php#296","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:133.0) Gecko/20100101 Firefox/133.0","version":"30.0.4.1","data":{"app":"PHP"}}
{"reqId":"hCxF3L0mmJKY2VPB8XQ7","level":3,"time":"2025-01-09T22:09:39+00:00","remoteAddr":"192.168.2.142","user":"admin","app":"index","method":"GET","url":"/index.php/settings/apps","message":"Exception thrown: OCP\\Files\\GenericFileException","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:133.0) Gecko/20100101 Firefox/133.0","version":"30.0.4.1","exception":{"Exception":"OCP\\Files\\GenericFileException","Message":"","Code":0,"Trace":[{"file":"/var/www/nextcloud/lib/private/Files/SimpleFS/SimpleFile.php","line":55,"function":"getContent","class":"OC\\Files\\Node\\File","type":"->"},{"file":"/var/www/nextcloud/lib/private/App/AppStore/Fetcher/Fetcher.php","line":136,"function":"getContent","class":"OC\\Files\\SimpleFS\\SimpleFile","type":"->"},{"file":"/var/www/nextcloud/lib/private/App/AppStore/Fetcher/AppFetcher.php","line":155,"function":"get","class":"OC\\App\\AppStore\\Fetcher\\Fetcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/Installer.php","line":381,"function":"get","class":"OC\\App\\AppStore\\Fetcher\\AppFetcher","type":"->"},{"file":"/var/www/nextcloud/apps/settings/lib/Controller/AppSettingsController.php","line":202,"function":"isUpdateAvailable","class":"OC\\Installer","type":"->"},{"file":"/var/www/nextcloud/apps/settings/lib/Controller/AppSettingsController.php","line":92,"function":"getAppsWithUpdates","class":"OCA\\Settings\\Controller\\AppSettingsController","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":208,"function":"viewApps","class":"OCA\\Settings\\Controller\\AppSettingsController","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":114,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/App.php","line":161,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/Route/Router.php","line":302,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"/var/www/nextcloud/lib/base.php","line":1003,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/nextcloud/index.php","line":24,"function":"handleRequest","class":"OC","type":"::"}],"File":"/var/www/nextcloud/lib/private/Files/Node/File.php","Line":35,"message":"","exception":{},"CustomMessage":"Exception thrown: OCP\\Files\\GenericFileException"}}

I already tried the usual things like

occ maintenance:repair
occ upgrade
occ files:scan --all

Any idea?

Thanks in advance,
Michael

How did you deploy the upgrade?

Is /mnt/nextcloud/appdata_oc97brq1i9id/appstore/apps.json accessible from the command line?

No it’s gone meanwhile. I guess i must have deleted the appstore folder while doing trial&error. I don’t know where to get it back.

I run the upgrade via updater.phar in /var/www/nextcloud/updater.

Meanwhile i managed to download the apps.json and categories.json from https://apps.nextcloud.com/api/v1/app.json.

I can now open the appstore and i can see the categories. But all the categories are empty:

Apparently, something must be wrongly configured. I’m getting constantly blocked/rate limited by the appstore. When i try to open the web site https://apps.nextcloud.com i’m getting the error:

grafik

{"reqId":"PLqwT8o0pMCALr6BQHWl","level":2,"time":"2025-01-10T21:44:55+00:00","remoteAddr":"192.168.2.142","user":"admin","app":"appstoreFetcher","method":"GET","url":"/index.php/settings/apps/list","message":"Client error: `GET https://apps.nextcloud.com/api/v1/apps.json` resulted in a `429 Too Many Requests` response:\n<html>\r\n<head><title>429 Too Many Requests</title></head>\r\n<body>\r\n<center><h1>429 Too Many Requests</h1></center>\r\n<hr> (truncated...)\n","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:133.0) Gecko/20100101 Firefox/133.0","version":"30.0.4.1","exception":{"Exception":"GuzzleHttp\\Exception\\ClientException","Message":"Client error: `GET https://apps.nextcloud.com/api/v1/apps.json` resulted in a `429 Too Many Requests` response:\n<html>\r\n<head><title>429 Too Many Requests</title></head>\r\n<body>\r\n<center><h1>429 Too Many Requests</h1></center>\r\n<hr> (truncated...)\n","Code":429,"Trace":[{"file":"/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php","line":72,"function":"create","class":"GuzzleHttp\\Exception\\RequestException","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php","line":209,"function":"GuzzleHttp\\{closure}","class":"GuzzleHttp\\Middleware","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php","line":158,"function":"callHandler","class":"GuzzleHttp\\Promise\\Promise","type":"::"},{"file":"/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/TaskQueue.php","line":52,"function":"GuzzleHttp\\Promise\\{closure}","class":"GuzzleHttp\\Promise\\Promise","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php","line":251,"function":"run","class":"GuzzleHttp\\Promise\\TaskQueue","type":"->"}