Calendar app disabled suddenly, error on enable

The Basics

  • Nextcloud Server version (e.g., 29.x.x):
    • 33.0.6
  • Operating system and version (e.g., Ubuntu 24.04):
    • debian 13.5
  • Web server and version (e.g, Apache 2.4.25):
    • docker image nextcloud
  • Reverse proxy and version _(e.g. nginx 1.27.2)
    • traefik 2.11
  • PHP version (e.g, 8.3):
    • 8.4.23 (bundled in image)
  • Is this the first time you’ve seen this error? (Yes / No):
    • yes
  • When did this problem seem to first start?
    • noticed today
  • Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
  • Are you using CloudfIare, mod_security, or similar? (Yes / No)
    • no

Summary of the issue you are facing:

Suddenly the calendar app is disabled in my Nextcloud instance, probably since update to 33.0.6 but i’m not certain.

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

  1. docker compose pull

  2. docker compose up -d

  3. calendar app disabled, and will not enable

Location of the app:

docker exec -it nextcloud php occ app:getpath calendar
/var/www/html/custom_apps/calendar

The calendar app does exist in the custom_apps directory, and files are owned by www-data:

docker exec -it nextcloud bash
cd /var/www/html/custom_apps/calendar/appinfo

/var/www/html/custom_apps/calendar/appinfo# ls -lha
total 8.0K
drwxrwxr-x  2 www-data www-data 4.0K Jul  1 01:10 .
drwxrwxr-x 12 www-data www-data 4.0K Jul  1 01:10 ..
-rw-rw-r--  1 www-data www-data    0 Jul  1 01:10 info.xml
-rw-rw-r--  1 www-data www-data    0 Jul  1 01:10 routes.php
-rw-rw-r--  1 www-data www-data    0 Jul  1 01:10 signature.json

the info.xml file is 0 bytes, but it does exist and is writable.

Log entries

Nextcloud

Please provide the log entries from your Nextcloud log that are generated during the time of problem (via the Copy raw option from Administration settings->Logging screen or from your nextcloud.log located in your data directory). Feel free to use a pastebin/gist service if necessary.

{ "reqId": "5diZ5eh2NBlO2UYPm7EF", "level": 3, "time": "2026-07-07T19:40:50+00:00", "remoteAddr": "172.18.0.1", "user": "MyUsername", "app": "settings", "method": " POST ", "url": "/settings/apps/enable", "scriptName": "/index.php", "message": "could not enable apps", "userAgent": "Mozilla/5.0 (X11; Linux x86_64; rv:152.0) Gecko/20100101 Firefox/152.0", "version": "33.0.6.2", "exception": { "Exception": "Exception", "Message": "App "calendar" cannot be installed because appinfo file cannot be read.", "Code": 0, "Trace": [{ "file": "/var/www/html/apps/settings/lib/Controller/AppSettingsController.php", "line": 582, "function": "installApp", "class": "OC\Installer", "type": "->", "args": ["calendar"] }, { "file": "/var/www/html/lib/private/AppFramework/Http/Dispatcher.php", "line": 205, "function": "enableApps", "class": "OCA\Settings\Controller\AppSettingsController", "type": "->", "args": [["calendar"], []] }, { "file": "/var/www/html/lib/private/AppFramework/Http/Dispatcher.php", "line": 118, "function": "executeController", "class": "OC\AppFramework\Http\Dispatcher", "type": "->", "args": [{ "__class__": "OCA\Settings\Controller\AppSettingsController" }, "enableApps"] }, { "file": "/var/www/html/lib/private/AppFramework/App.php", "line": 153, "function": "dispatch", "class": "OC\AppFramework\Http\Dispatcher", "type": "->", "args": [{ "__class__": "OCA\Settings\Controller\AppSettingsController" }, "enableApps"] }, { "file": "/var/www/html/lib/private/Route/Router.php", "line": 321, "function": "main", "class": "OC\AppFramework\App", "type": "::", "args": ["OCA\Settings\Controller\AppSettingsController", "enableApps", { "__class__": "OC\AppFramework\DependencyInjection\DIContainer" }, { "_route": "settings.appsettings.enableapps" }] }, { "file": "/var/www/html/lib/base.php", "line": 1155, "function": "match", "class": "OC\Route\Router", "type": "->", "args": ["/settings/apps/enable"] }, { "file": "/var/www/html/index.php", "line": 25, "function": "handleRequest", "class": "OC", "type": "::", "args": [] }], "File": "/var/www/html/lib/private/Installer.php", "Line": 69, "message": "could not enable apps", "exception": "{"class":"Exception","message":"App \"calendar\" cannot be installed because appinfo file cannot be read.","code":0,"file":"/var/www/html/lib/private/Installer.php:69","trace":"#0 /var/www/html/apps/settings/lib/Controller/AppSettingsController.php(582): OC\Installer->installApp('calendar')\n#1 /var/www/html/lib/private/AppFramework/Http/Dispatcher.php(205): OCA\Settings\Controller\AppSettingsController->enableApps(Array, Array)\n#2 /var/www/html/lib/private/AppFramework/Http/Dispatcher.php(118): OC\AppFramework\Http\Dispatcher->executeController(Object(OCA\Settings\Controller\AppSettingsController), 'enableApps')\n#3 /var/www/html/lib/private/AppFramework/App.php(153): OC\AppFramework\Http\Dispatcher->dispatch(Object(OCA\Settings\Controller\AppSettingsController), 'enableApps')\n#4 /var/www/html/lib/private/Route/Router.php(321): OC\AppFramework\App::main('OCA\\Settings\\Co...', 'enableApps', Object(OC\AppFramework\DependencyInjection\DIContainer), Array)\n#5 /var/www/html/lib/base.php(1155): OC\Route\Router->match('/settings/apps/...')\n#6 /var/www/html/index.php(25): OC::handleRequest()\n#7 {main}"}", "CustomMessage": "could not enable apps" } }

Web Browser

If the problem is related to the Web interface, open your browser inspector Console and Network tabs while refreshing (reloading) and reproducing the problem. Provide any relevant output/errors here that appear.

PASTE

Web server / Reverse Proxy

The output of your Apache/nginx/system log in /var/log/____:

PASTE HERE

Configuration

Nextcloud

The output of occ config:list system or similar is best, but, if not possible, the contents of your config.php file from /path/to/nextcloud is fine (make sure to remove any identifiable information!):

docker exec -it nextcloud php 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

        },

        "overwriteprotocol": "https",

        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",

        "instanceid": "***REMOVED SENSITIVE VALUE***",

        "passwordsalt": "***REMOVED SENSITIVE VALUE***",

        "secret": "***REMOVED SENSITIVE VALUE***",

        "trusted_domains": [

            "-snip-"

        ],

        "datadirectory": "***REMOVED SENSITIVE VALUE***",

        "dbtype": "pgsql",

        "version": "33.0.6.2",

        "overwrite.cli.url": "-snip-",

        "dbname": "***REMOVED SENSITIVE VALUE***",

        "dbhost": "***REMOVED SENSITIVE VALUE***",

        "dbport": "",

        "dbtableprefix": "oc_",

        "dbuser": "***REMOVED SENSITIVE VALUE***",

        "dbpassword": "***REMOVED SENSITIVE VALUE***",

        "installed": true,

        "default_phone_region": "NL",

        "data-fingerprint": "a1c290f0293bff8472b89ca29b904a21",

        "maintenance": false,

        "loglevel": 0,

        "theme": "",

        "forbidden_filename_basenames": [

            "con",

            "prn",

            "aux",

            "nul",

            "com0",

            "com1",

            "com2",

            "com3",

            "com4",

            "com5",

            "com6",

            "com7",

            "com8",

            "com9",

            "com\u00b9",

            "com\u00b2",

            "com\u00b3",

            "lpt0",

            "lpt1",

            "lpt2",

            "lpt3",

            "lpt4",

            "lpt5",

            "lpt6",

            "lpt7",

            "lpt8",

            "lpt9",

            "lpt\u00b9",

            "lpt\u00b2",

            "lpt\u00b3"

        ],

        "forbidden_filename_characters": [

            "<",

            ">",

            ":",

            "\"",

            "|",

            "?",

            "*",

            "\\",

            "\/"

        ],

        "forbidden_filename_extensions": [

            " ",

            ".",

            ".filepart",

            ".part"

        ],

        "maintenance_window_start": 1

    }

}

Apps

The output of occ app:list (if possible).

docker exec -it nextcloud php occ app:list
Enabled:
  - activity: 6.0.0
  - app_api: 33.0.0
  - bruteforcesettings: 6.0.0
  - circles: 33.0.0
  - cloud_federation_api: 1.17.0
  - comments: 1.23.0
  - contactsinteraction: 1.14.1
  - countdown: 1.2.11
  - dashboard: 7.13.0
  - dav: 1.36.0
  - federatedfilesharing: 1.23.0
  - federation: 1.23.0
  - files: 2.5.0
  - files_downloadlimit: 5.1.0
  - files_pdfviewer: 6.0.0
  - files_reminders: 1.6.0
  - files_sharing: 1.25.2
  - files_trashbin: 1.23.0
  - files_versions: 1.26.0
  - firstrunwizard: 6.0.0
  - logreader: 6.0.0
  - lookup_server_connector: 1.21.0
  - mail: 5.10.4
  - nextcloud_announcements: 5.0.0
  - notifications: 6.0.0
  - oauth2: 1.21.0
  - password_policy: 5.0.0
  - photos: 6.0.0
  - privacy: 5.0.0
  - profile: 1.2.0
  - provisioning_api: 1.23.0
  - recommendations: 6.0.0
  - related_resources: 4.0.0
  - richdocumentscode_arm64: 26.4.104
  - serverinfo: 5.0.0
  - settings: 1.16.0
  - sharebymail: 1.23.0
  - support: 5.0.0
  - survey_client: 5.0.0
  - systemtags: 1.23.0
  - tasks: 0.18.1
  - text: 7.0.1
  - theming: 2.8.0
  - twofactor_backupcodes: 1.22.0
  - twofactor_totp: 15.0.0
  - updatenotification: 1.23.0
  - user_status: 1.13.0
  - viewer: 6.0.0
  - weather_status: 1.13.0
  - webhook_listeners: 1.5.0
  - workflowengine: 2.15.0
Disabled:
  - admin_audit: 1.23.0
  - calendar: 0 (installed 6.5.0)
  - contacts: 0 (installed 8.7.2)
  - encryption: 2.21.0
  - files_external: 1.25.1
  - files_rightclick: 0.15.1 (installed 1.6.0)
  - ransomware_protection: 1.14.0 (installed 1.14.0)
  - recognize: 8.2.2 (installed 8.2.2)
  - richdocuments: 8.5.13 (installed 8.5.13)
  - spreed: 20.1.11 (installed 20.1.11)
  - suspicious_login: 11.0.0
  - twofactor_nextcloud_notification: 7.0.0
  - user_ldap: 1.24.0

If a file exists but has no content it cannot be read. Install the calendar app again and make sure that the files have a size greater than zero.

Would reinstalling the calendar app wipe the content of my calendars as well?

No.

However keep in mind:

  • you should definitely maintain regular backups
  • the log entry you’re seeing isn’t the underlying cause of your situation, just the byproduct
  • likely you’ll need to try to trace back to the time period where the calendar update zero’d out those files and look for useful log entries

This almost seems like something that would happen maybe if you want out of disk space or something. It’s impossible to know without knowing more about your environment.