Skip to content

[Bug]: Appstore catalog fetch throws InvalidArgumentException and breaks entire Apps page when an app ID exceeds 32-char AppConfig column limit #61799

Description

@lmargit

⚠️ This issue respects the following points: ⚠️

Bug description

Loading Settings → Apps → Updates (and likely other Apps subpages that fetch the remote catalog) fails completely with "Could not load apps list. Please try again later." The root cause is an uncaught InvalidArgumentException thrown while iterating the full remote App Store catalog to check each app's enabled/disabled config state. One catalog entry, skynettechnologiesallinoneaccessibility (40 characters), exceeds the 32-character limit enforced by OC\AppConfig::assertParams() for the app parameter.

Steps to reproduce

1.Go to Settings → Apps → Updates (or any Apps category page that triggers a fresh catalog fetch)
2. Observe "Could not load apps list. Please try again later." with an empty list, even though updates may genuinely be pending elsewhere
3. Check nextcloud.log for InvalidArgumentException: Value (skynettechnologiesallinoneaccessibility) for app is too long (32)

Expected behavior

The Apps page should load successfully regardless of malformed/oversized app IDs in the remote catalog.

Nextcloud Server version

34

Operating system

Debian/Ubuntu

PHP engine version

PHP 8.5

Web server

Nginx

Database engine version

PostgreSQL

Is this bug present after an update or on a fresh install?

Updated from a MINOR version (ex. 32.0.1 to 32.0.2)

Are you using the Nextcloud Server Encryption module?

Encryption is Disabled

What user-backends are you using?

  • Default user-backend (database)
  • LDAP/ Active Directory
  • SSO - SAML
  • Other

Configuration report

# occ config:list system
{
    "system": {
        "htaccess.RewriteBase": "\/",
        "memcache.local": "\\OC\\Memcache\\APCu",
        "apps_paths": [
            {
                "path": "\/var\/www\/html\/apps",
                "url": "\/apps",
                "writable": false
            },
            {
                "path": "\/var\/www\/html\/custom_apps",
                "url": "\/custom_apps",
                "writable": true
            }
        ],
        "memcache.distributed": "\\OC\\Memcache\\Redis",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "password": "***REMOVED SENSITIVE VALUE***",
            "port": 6379
        },
        "upgrade.disable-web": true,
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "pgsql",
        "version": "34.0.1.2",
        "overwrite.cli.url": "https:\/\/next.marcanocloud.com",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "maintenance_window_start": 1,
        "default_locale": "en_US",
        "default_phone_region": "US",
        "default_timezone": "America\/New_York",
        "logtimezone": "America\/New_York",
        "overwritehost": "REMOVED",
        "overwriteprotocol": "https",
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "enable_previews": true,
        "forwarded_for_headers": [
            "HTTP_X_FORWARDED_FOR"
        ],
        "enabledPreviewProviders": [
            "OC\\Preview\\Image",
            "OC\\Preview\\MarkDown",
            "OC\\Preview\\OpenDocument",
            "OC\\Preview\\PDF",
            "OC\\Preview\\MSOffice2003",
            "OC\\Preview\\MSOfficeDoc",
            "OC\\Preview\\Image",
            "OC\\Preview\\Photoshop",
            "OC\\Preview\\TIFF",
            "OC\\Preview\\SVG",
            "OC\\Preview\\Font",
            "OC\\Preview\\MP3",
            "OC\\Preview\\Movie",
            "OC\\Preview\\MKV",
            "OC\\Preview\\MP4",
            "OC\\Preview\\AVI",
            "OC\\Preview\\HEIC",
            "OC\\Preview\\PNG",
            "OC\\Preview\\AVIF",
            "OC\\Preview\\WebP",
            "OC\\Preview\\JPEG",
            "OC\\Preview\\GIF",
            "OC\\Preview\\BMP"
        ],
        "mail_smtpmode": "smtp",
        "mail_sendmailmode": "smtp",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "465",
        "mail_smtpauth": true,
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpsecure": "ssl",
        "preview_ffmpeg_path": "\/usr\/bin\/ffmpeg",
        "memories.exiftool": "\/var\/www\/html\/custom_apps\/memories\/bin-ext\/exiftool-amd64-glibc",
        "memories.vod.path": "\/var\/www\/html\/custom_apps\/memories\/bin-ext\/go-vod-amd64",
        "memories.vod.ffmpeg": "\/usr\/bin\/ffmpeg",
        "memories.vod.ffprobe": "\/usr\/bin\/ffprobe",
        "memories.map.tile_server": "https:\/\/tiles.stadiamaps.com\/tiles\/osm_bright\/{z}\/{x}\/{y}.png",
        "maintenance": false,
        "allow_local_remote_servers": true,
        "loglevel": 2,
        "memories.gis_type": 2,
        "preview_imaginary_url": "***REMOVED SENSITIVE VALUE***",
        "app_install_overwrite": [
            "memories"
        ],
        "config_preset": 2,
        "memories.db.triggers.fcu": true,
        "forwarded-for-headers": [
            "HTTP_X_FORWARDED_FOR"
        ],
        "preview_max_x": 1024,
        "mail_smtpstreamoptions": {
            "ssl": {
                "allow_self_signed": false,
                "verify_peer": true,
                "verify_peer_name": true
            }
        },
        "trusted_domains": [
            "127.0.0.1",
            "REMOVED",
            "REMOVED",
            "localhost",
            "REMOVED",
            "nextcloud",
            "nginx",
            "REMOVED",
            "REMOVED"
        ]
    }
}

List of activated Apps

Enabled:
  - announcementcenter: 7.4.1
  - app_api: 34.0.0
  - appstore: 1.0.0
  - assistant: 3.4.3
  - bruteforcesettings: 7.0.0
  - calendar: 6.5.0
  - circles: 34.0.0
  - cloud_federation_api: 1.18.0
  - comments: 1.24.0
  - contacts: 8.7.2
  - contactsinteraction: 1.15.0
  - context_chat: 5.4.0
  - dashboard: 7.14.0
  - dav: 1.39.0
  - deck: 1.18.2
  - eurooffice: 11.0.1
  - external: 9.0.1
  - federatedfilesharing: 1.24.0
  - federation: 1.24.0
  - files: 2.6.0
  - files_downloadlimit: 5.2.0-dev.0
  - files_external: 1.26.0
  - files_lock: 34.0.0
  - files_pdfviewer: 7.0.0-dev.0
  - files_reminders: 1.7.0
  - files_sharing: 1.26.0
  - files_trashbin: 1.24.0
  - files_versions: 1.27.0
  - firstrunwizard: 7.0.0-dev.0
  - groupfolders: 22.0.2
  - integration_openai: 4.5.1
  - logcleaner: 1.5.5
  - logreader: 7.0.0
  - lookup_server_connector: 1.22.0
  - nextcloud_announcements: 6.0.0
  - notes: 6.0.1
  - notifications: 7.0.0-dev.1
  - notify_push: 1.3.3
  - oauth2: 1.22.0
  - password_policy: 6.0.0-dev.0
  - photos: 7.0.0
  - previewgenerator: 5.14.0
  - privacy: 6.0.0-dev.1
  - profile: 1.3.0
  - provisioning_api: 1.24.0
  - recognize: 12.0.0
  - recommendations: 7.0.0
  - related_resources: 5.0.0-dev.0
  - serverinfo: 6.0.0
  - settings: 1.17.0
  - sharebymail: 1.24.0
  - spreed: 24.0.1
  - support: 6.0.0
  - survey_client: 6.0.0-dev.0
  - systemtags: 1.24.0
  - text: 8.0.0
  - theming: 2.9.0
  - twofactor_backupcodes: 1.23.0
  - twofactor_totp: 16.0.0
  - updatenotification: 1.24.0
  - user_migration: 10.4.0
  - user_status: 1.14.0
  - viewer: 7.0.0-dev.0
  - weather_status: 1.14.0
  - webhook_listeners: 1.6.0
  - whiteboard: 1.5.9
  - workflowengine: 2.16.0
Disabled:
  - activity: 7.0.0 (installed 5.0.0-dev.0)
  - admin_audit: 1.24.0
  - drawio: 4.2.4 (installed 4.2.4)
  - encryption: 2.22.0
  - end_to_end_encryption: 2.2.0 (installed 2.2.0)
  - files_fulltextsearch: 33.0.0 (installed 33.0.0)
  - fulltextsearch: 33.0.0 (installed 33.0.0)
  - fulltextsearch_elasticsearch: 33.0.0 (installed 33.0.0)
  - intros: 1.2.1 (installed 1.2.1)
  - office: 1.0.0 (installed 1.0.0)
  - suspicious_login: 12.0.0-dev.0 (installed 12.0.0-dev.0)
  - twofactor_nextcloud_notification: 8.0.0
  - user_ldap: 1.25.0

Nextcloud Signing status

Nextcloud Logs

{
    "reqId": "gN72lUCw65v6uH7hooI2",
    "level": 3,
    "time": "2026-07-04T06:27:49-04:00",
    "remoteAddr": "[redacted]",
    "user": "[redacted]",
    "app": "no app in context",
    "method": "GET",
    "url": "/ocs/v2.php/apps/appstore/api/v1/apps",
    "scriptName": "/ocs/v2.php",
    "message": "Value (skynettechnologiesallinoneaccessibility) for app is too long (32)",
    "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36 Edg/149.0.0.0",
    "version": "34.0.1.2",
    "exception": {
        "Exception": "InvalidArgumentException",
        "Message": "Value (skynettechnologiesallinoneaccessibility) for app is too long (32)",
        "Code": 0,
        "Trace": [
            {
                "file": "/var/www/html/lib/private/AppConfig.php",
                "line": 511,
                "function": "assertParams",
                "class": "OC\\AppConfig",
                "type": "->",
                "args": [
                    "skynettechnologiesallinoneaccessibility",
                    "enabled",
                    false,
                    4
                ]
            },
            {
                "file": "/var/www/html/lib/private/AppConfig.php",
                "line": 388,
                "function": "getTypedValue",
                "class": "OC\\AppConfig",
                "type": "->",
                "args": [
                    "skynettechnologiesallinoneaccessibility",
                    "enabled",
                    "no",
                    false,
                    4
                ]
            },
            {
                "file": "/var/www/html/apps/appstore/lib/Controller/ApiController.php",
                "line": 437,
                "function": "getValueString",
                "class": "OC\\AppConfig",
                "type": "->",
                "args": [
                    "skynettechnologiesallinoneaccessibility",
                    "enabled",
                    "no"
                ]
            },
            {
                "file": "/var/www/html/apps/appstore/lib/Controller/ApiController.php",
                "line": 331,
                "function": "getAppsForCategory",
                "class": "OCA\\Appstore\\Controller\\ApiController",
                "type": "->",
                "args": [
                    ""
                ]
            },
            {
                "file": "/var/www/html/apps/appstore/lib/Controller/ApiController.php",
                "line": 362,
                "function": "fetchApps",
                "class": "OCA\\Appstore\\Controller\\ApiController",
                "type": "->",
                "args": []
            },
            {
                "file": "/var/www/html/apps/appstore/lib/Controller/ApiController.php",
                "line": 92,
                "function": "getAllApps",
                "class": "OCA\\Appstore\\Controller\\ApiController",
                "type": "->",
                "args": []
            },
            {
                "file": "/var/www/html/lib/private/AppFramework/Http/Dispatcher.php",
                "line": 165,
                "function": "listApps",
                "class": "OCA\\Appstore\\Controller\\ApiController",
                "type": "->",
                "args": [
                    false
                ]
            },
            {
                "file": "/var/www/html/lib/private/AppFramework/Http/Dispatcher.php",
                "line": 78,
                "function": "executeController",
                "class": "OC\\AppFramework\\Http\\Dispatcher",
                "type": "->",
                "args": [
                    {
                        "__class__": "OCA\\Appstore\\Controller\\ApiController"
                    },
                    "listApps"
                ]
            },
            {
                "file": "/var/www/html/lib/private/AppFramework/App.php",
                "line": 137,
                "function": "dispatch",
                "class": "OC\\AppFramework\\Http\\Dispatcher",
                "type": "->",
                "args": [
                    {
                        "__class__": "OCA\\Appstore\\Controller\\ApiController"
                    },
                    "listApps"
                ]
            },
            {
                "file": "/var/www/html/lib/private/Route/Router.php",
                "line": 324,
                "function": "main",
                "class": "OC\\AppFramework\\App",
                "type": "::",
                "args": [
                    "OCA\\Appstore\\Controller\\ApiController",
                    "listApps",
                    {
                        "__class__": "OC\\AppFramework\\DependencyInjection\\DIContainer"
                    },
                    {
                        "_route": "ocs.appstore.api.listapps"
                    }
                ]
            },
            {
                "file": "/var/www/html/ocs/v1.php",
                "line": 63,
                "function": "match",
                "class": "OC\\Route\\Router",
                "type": "->",
                "args": [
                    "/ocsapp/apps/ap...str/api/v1/apps"
                ]
            },
            {
                "file": "/var/www/html/ocs/v2.php",
                "line": 10,
                "args": [
                    "/var/www/html/ocs/v1.php"
                ],
                "function": "require_once"
            }
        ],
        "File": "/var/www/html/lib/private/AppConfig.php",
        "Line": 1351,
        "message": "Value (skynettechnologiesallinoneaccessibility) for app is too long (32)",
        "CustomMessage": "Value (skynettechnologiesallinoneaccessibility) for app is too long (32)"
    }
}

Additional info

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    0. Needs triagePending check for reproducibility or if it fits our roadmap34-feedbackbug

    Type

    Fields

    No fields configured for Bug.

    Projects

    Status
    To triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions