Nextcloud apps destroyed after update

Support intro

Sorry to hear you’re facing problems. :slightly_frowning_face:

The community help forum (help.nextcloud.com) is for home and non-enterprise users. Support is provided by other community members on a best effort / “as available” basis. All of those responding are volunteering their time to help you.

If you’re using Nextcloud in a business/critical setting, paid and SLA-based support services can be accessed via portal.nextcloud.com where Nextcloud engineers can help ensure your business keeps running smoothly.

Getting help

In order to help you as efficiently (and quickly!) as possible, please fill in as much of the below requested information as you can.

Before clicking submit: Please check if your query is already addressed via the following resources:

(Utilizing these existing resources is typically faster. It also helps reduce the load on our generous volunteers while elevating the signal to noise ratio of the forums otherwise arising from the same queries being posted repeatedly).

The Basics

  • Nextcloud Server version (e.g., 29.x.x):
    • (32.0.5)
  • Operating system and version (e.g., Ubuntu 24.04):
    • UGOSpro 1.12.1.0002
  • Is this the first time you’ve seen this error? (Yes / No):
    • Yes
  • When did this problem seem to first start?
    • After Updating docker images from NAS
  • Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
    • Docker Compose
    • version: '3.8'
      
      
      services:
        db:
          image: mariadb:10.6
          container_name: nextcloud_db
          restart: unless-stopped
          command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
          volumes:
            - /volume1/docker/nextcloud/db:/var/lib/mysql # Adjust this path to your NAS volume
          environment:
            MYSQL_ROOT_PASSWORD: sensitive # Change this to a strong password
            MYSQL_DATABASE: nextcloud
            MYSQL_USER: nextcloud
            MYSQL_PASSWORD: sensitive # Change this to a strong password
      
      
        app:
          image: nextcloud:latest
          container_name: nextcloud_app
          restart: unless-stopped
          volumes:
            - /volume1/docker/nextcloud/data:/var/www/html/data # Adjust this path to your NAS volume
            - /volume1/docker/nextcloud/config:/var/www/html/config # Adjust this path to your NAS volume
            - /etc/timezone:/etc/timezone:ro
            - /etc/localtime:/etc/localtime:ro
          environment:
            PUID: 1000 # Your User ID
            PGID: 10 # Your Group ID
            NEXTCLOUD_TRUSTED_DOMAINS: 192.168.178.154 # e.g., 192.168.1.100 or your.domain.com
            MYSQL_DATABASE: nextcloud
            MYSQL_USER: nextcloud
            MYSQL_PASSWORD: sensitive # Use the same password as above
            MYSQL_HOST: db # This matches the service name of the database container
            TZ: Europe/Berlin # Adjust to your timezone
          ports:
            - 8080:80 # Corrected: Needs host_port:container_port
          depends_on:
            - db
      
      
        # Optional: Redis for Nextcloud performance
        redis:
          image: redis:latest
          container_name: nextcloud_redis
          restart: unless-stopped
          command: redis-server --appendonly yes --requirepass sensitive # Corrected: Entire command string quoted
          volumes:
            - /volume1/docker/nextcloud/redis:/data # Adjust this path to your NAS volume
      
  • Are you using CloudfIare, mod_security, or similar? (Yes / No)
    • Yes (Cloudflare Tunnel)

Summary of the issue you are facing:

I updated my Docker images via the Ugreen Docker interface, and when Nextcloud restarted, no apps were visible in the bar anymore. They are still shown as active and functioning, but none of them are available in any way—only dashboard files and activity are still available.

Steps to replicate it (i cant):

  1. Find Running Nextcloud instace

  2. Update via Ugreen NAS to new version

  3. See no apps

Log entries

Nextcloud Docker App

Initializing nextcloud 32.0.5.0 ...
New nextcloud instance
Next step: Access your instance to finish the web-based installation!
Hint: You can specify NEXTCLOUD_ADMIN_USER and NEXTCLOUD_ADMIN_PASSWORD and the database variables _prior to first launch_ to fully automate initial installation.
Initializing finished
=> Searching for hook scripts (*.sh) to run, located in the folder "/docker-entrypoint-hooks.d/before-starting"
==> Skipped: the "before-starting" folder is empty (or does not exist)
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.23.0.4. Set the 'ServerName' directive globally to suppress this message
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.23.0.4. Set the 'ServerName' directive globally to suppress this message
[Wed Jan 21 16:15:04.923993 2026] [mpm_prefork:notice] [pid 1:tid 1] AH00163: Apache/2.4.66 (Debian) PHP/8.3.30 configured -- resuming normal operations
[Wed Jan 21 16:15:04.924020 2026] [core:notice] [pid 1:tid 1] AH00094: Command line: 'apache2 -D FOREGROUND'

Configuration

Nextcloud

{
    "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
            }
        ],
        "upgrade.disable-web": true,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "***REMOVED SENSITIVE VALUE***",
            "***REMOVED SENSITIVE VALUE***",
            "***REMOVED SENSITIVE VALUE***"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "32.0.5.0",
        "overwrite.cli.url": "***REMOVED SENSITIVE VALUE***",
        "overwriteprotocol": "https",
        "default_phone_region": "de",
        "maintenance_window_start": "1",
        "forwarded_for_headers": [
            "HTTP_X_FORWARDED_FOR"
        ],
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbtableprefix": "oc_",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "config_preset": 2,
        "app_install_overwrite": [],
        "maintenance": false
    }
}

Apps

The output of occ app:list

Enabled:
  - activity: 5.0.0-dev.0
  - admin_audit: 1.22.0
  - app_api: 32.0.0
  - bruteforcesettings: 5.0.0-dev.0
  - circles: 32.0.0
  - cloud_federation_api: 1.16.0
  - comments: 1.22.0
  - contactsinteraction: 1.13.1
  - dashboard: 7.12.0
  - dav: 1.34.2
  - federatedfilesharing: 1.22.0
  - federation: 1.22.0
  - files: 2.4.0
  - files_downloadlimit: 5.0.0-dev.0
  - files_pdfviewer: 5.0.0-dev.0
  - files_reminders: 1.5.0
  - files_sharing: 1.24.1
  - files_trashbin: 1.22.0
  - files_versions: 1.25.0
  - firstrunwizard: 5.0.0-dev.0
  - logreader: 5.0.0-dev.0
  - lookup_server_connector: 1.20.0
  - nextcloud_announcements: 4.0.0-dev.0
  - notifications: 5.0.0-dev.0
  - oauth2: 1.20.0
  - password_policy: 4.0.0-dev.0
  - privacy: 4.0.0-dev.0
  - profile: 1.1.0
  - provisioning_api: 1.22.0
  - recommendations: 5.0.0-dev.0
  - related_resources: 3.0.0-dev.0
  - serverinfo: 4.0.0-dev.0
  - settings: 1.15.1
  - sharebymail: 1.22.0
  - support: 4.0.0-dev.0
  - survey_client: 4.0.0-dev.0
  - suspicious_login: 10.0.0-dev.0
  - systemtags: 1.22.0
  - text: 6.0.1
  - theming: 2.7.0
  - twofactor_backupcodes: 1.21.0
  - twofactor_nextcloud_notification: 6.0.0-dev.0
  - twofactor_totp: 14.0.0
  - updatenotification: 1.22.0
  - user_status: 1.12.0
  - viewer: 5.0.0-dev.0
  - weather_status: 1.12.0
  - webhook_listeners: 1.3.0
  - workflowengine: 2.14.0
Disabled:
  - encryption: 2.20.0
  - files_external: 1.24.1 (installed 1.24.1)
  - photos: 5.0.0-dev.1 (installed 5.0.0-dev.1)
  - user_ldap: 1.23.0

At least part of the problem is because your volumes are inappropriate for the image you’re using.

See

How can I fix this without creating a new Nextcloud? Unfortunately, I don’t have much experience with Nextcloud Docker, etc…

At a minimum /var/www/html needs its own volume, as described in the docs.

Yes, I have already adjusted my compose, but I am getting this error (it works with a completely new cloud).

version: '3.8'


services:
  db:
    image: mariadb:lts
    container_name: nextcloud_db
    restart: unless-stopped
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - /volume1/docker/nextcloud/db:/var/lib/mysql # Adjust this path to your NAS volume
    environment:
      MYSQL_ROOT_PASSWORD: <sensitive># Change this to a strong password
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_PASSWORD: <sensitive> # Change this to a strong password
      MARIADB_AUTO_UPGRADE: 1
      MARIADB_DISABLE_UPGRADE_BACKUP: 1

  # Optional: Redis for Nextcloud performance
  redis:
    image: redis:alpine
    restart: always

  app:
    image: nextcloud
    container_name: nextcloud_app
    restart: unless-stopped
    volumes:
      - /volume1/docker/nextcloud:/var/www/html/
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    environment:
      PUID: 1000 # Your User ID
      PGID: 10 # Your Group ID
      NEXTCLOUD_TRUSTED_DOMAINS: 192.168.178.154 # e.g., 192.168.1.100 or your.domain.com
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_PASSWORD: <sensitive> # Use the same password as above
      MYSQL_HOST: db # This matches the service name of the database container
      REDIS_HOST: redis
      TZ: Europe/Berlin # Adjust to your timezone
    ports:
      - 8080:80 # Corrected: Needs host_port:container_port
    depends_on:
      - db
      - redis

  cron:
    image: nextcloud
    restart: always
    volumes:
      - /volume1/docker/nextcloud:/var/www/html
      # NOTE: The `volumes` config of the `cron` and `app` containers must match
    entrypoint: /cron.sh
    depends_on:
      - db
      - redis

For the “completely new” deployment, is it really completely new or are you reusing the existing database and volume contents?

That error indicates your config is missing the version key (post-installation) or that a special file called CAN_INSTALL is missing while attempting installation. They indicate an unexpected state.

P.S. Please make sure to backup your data if you haven’t already.

Okay, first of all, I apologize for the silence. I decided to completely rebuild my Nextcloud with the new Docker compose. Everything works except for the code integrity, it seems. I have now used the new compose, but now I am getting this error and do not know how to fix it. Nextcloud says that there is a link to documentation, but that is not the case.

Technical information
=====================
The following list covers which files have failed the integrity check. Please read
the previous linked documentation to learn more about the errors and how to fix
them.

Results
=======
- core
	- EXCEPTION
		- UnexpectedValueException
		- RecursiveDirectoryIterator::__construct(/var/www/html/db/performance_schema): Failed to open directory: Permission denied

Raw output
==========
Array
(
    [core] => Array
        (
            [EXCEPTION] => Array
                (
                    [class] => UnexpectedValueException
                    [message] => RecursiveDirectoryIterator::__construct(/var/www/html/db/performance_schema): Failed to open directory: Permission denied
                )

        )

)

It’s because you have your db container’s volume located within your app container’s volume:

Thank you very much! My Nextcloud is now running smoothly. Without your help, I would never have understood what was going on. Thank you again for your helpful answer!

1 Like