Nextcloud installation completely broke after upgrading to 30

Nextcloud version (eg, 29.0.5): replace me
Operating system and version (this is the uname -e output) Linux openmediavault 6.1.57 #13 SMP Tue May 21 16:26:32 CST 2024 aarch64 GNU/Linux
Apache or nginx version: nginx
PHP version: 8.2.24

I updated my docker nextcloud instance from 29.0.5 to 30.0.0 via docker pull through the “latest” docker image tag, I then ran “php occ upgrade” inside de container. When this happened, one of the output of the updater was that core apps of my instance were disabled due to incompatibility. However, when I logged in with the admin user and later with my personal user I found that the instance is completely broken: App icons don’t render (the ones that survived; photos, files, activity and dashboard), when I try to access files it just shows the background image, some menus in settings work and others don’t (accesibility and appearence is one that doesn’t, as well as personal settings).

The only app that functions properly (except for the logo rendering part) is photos, which is funny because folders are accesible through it but not using the files app. Finally, desktop and mobile clients are completely unable to access the instance.

I don’t particularly have much time at the moment but I will gladly furthermore update the bugs that I’ve found.

Is this the first time you’ve seen this error? Yes:

Steps to replicate it:

  1. Have a 29.0.5 nextcloud in debian 12 for arm as a docker container
  2. Have installed apps such as calendar, passwords, secrets and contacts.
  3. Update to 30.0.0 via docker pull > php occ upgrade (inside the container)

config.php file:

<?php
$CONFIG = array (
  'htaccess.RewriteBase' => '/',
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'apps_paths' =>
  array (
    0 =>
    array (
      'path' => '/var/www/html/apps',
      'url' => '/apps',
      'writable' => false,
    ),
    1 =>
    array (
      'path' => '/var/www/html/custom_apps',
      'url' => '/custom_apps',
      'writable' => true,
    ),
  ),
  'upgrade.disable-web' => true,
  'instanceid' => '[ELIMINADO]', 
  'passwordsalt' => '[ELIMINADO]',
  'secret' => '[ELIMINADO]',
  'trusted_domains' =>
  array (
    0 => 'mydomain.com', 
  ),
  'trusted_proxies' => 
  array (
    0 => '173.245.48.0/20',
    1 => '103.21.244.0/22',
    2 => '103.22.200.0/22',
    3 => '103.31.4.0/22',
    4 => '141.101.64.0/18',
    5 => '108.162.192.0/18',
    6 => '190.93.240.0/20',
    7 => '188.114.96.0/20',
    8 => '197.234.240.0/22',       <--- Cloudflare proxies
    9 => '198.41.128.0/17',
    10 => '162.158.0.0/15',
    11 => '104.16.0.0/13',
    12 => '104.24.0.0/14',
    13 => '172.64.0.0/13',
    14 => '131.0.72.0/22',
    15 => '172.19.0.1'
  ),
  'overwriteprotocol' => 'https',
  'datadirectory' => '/var/www/html/data',
  'dbtype' => 'mysql',
  'version' => '30.0.0.14',
  'overwrite.cli.url' => 'http://192.168.1.93:4033', 
  'dbname' => 'nextcloud2',
  'dbhost' => 'db', 
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'mysql.utf8mb4' => true,
  'dbuser' => '[ELIMINADO]',
  'dbpassword' => '[ELIMINADO]', 
  'installed' => true,
  'maintenance' => false,
  'loglevel' => 0,
  'debug' => true, 
  'allow_user_to_change_display_name' => false,
  'filelocking.enabled' => 'true',
  'enable_previews' => true,
  'preview_max_x' => 2048,
  'preview_max_y' => 2048,
  'preview_max_memory' => 1024,
  'memories.db.triggers.fcu' => true,
  'memories.exiftool' => '/var/www/html/custom_apps/memories/bin-ext/exiftool-aarch64-glibc',
  'memories.vod.path' => '/var/www/html/custom_apps/memories/bin-ext/go-vod-aarch64',
  'maintenance_window_start' => '4',
  'mail_smtpmode' => 'smtp',
  'mail_sendmailmode' => 'smtp',
);

edit: I have a backup for all things that I have stored in NC; worst case scenario I just have to create a new installation, but I really don’t want to

Update to 30.0.0 via docker pull > php occ upgrade (inside the container)

Any particular reason you’re running occ upgrade manually? The image upgrade process is docker compose pull && docker compose up -d. The entrypoint runs the upgrade process automatically.

Manually triggering the upgrade in the container is generally a sign of a problem. Check your container startup logs.

Please post your Compose file. My first guess is you have an inappropriate volume configuration.

1 Like

You’re probably going to hate me for saying this, but I did it because of ChatGPT advice. I tried doing it the way you mentioned in your reply but then looking at the admin page on the WebUI it still showed the previous version (29.0.5).

As it was just a frontend problem (I suspect) I was able to transfer all my files to another fresh nextcloud installation, but I would still like to know the mysteries of this problem.

This is the docker-compose file:

services:
  nextcloud:
    image: nextcloud:latest
    container_name: nextcloud
    ports:
      - "4033:80"
    volumes:
      - /srv/dev-disk-by-uuid-ca57bd51-069f-4c87-b8a9-18716f5a8707/nxtc/nextcloud_config:/var/www/html/config
      - /srv/dev-disk-by-uuid-ca57bd51-069f-4c87-b8a9-18716f5a8707/nxtc/nextcloud_data:/var/www/html/data
    environment:
      - MYSQL_HOST=db
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextclouddb
      - MYSQL_PASSWORD=*hidden*
    depends_on:
      - db
    restart: always

  db:
    image: mariadb:latest
    container_name: nextcloud_db
    environment:
      - MYSQL_ROOT_PASSWORD=*hidden*
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextclouddb
      - MYSQL_PASSWORD=*hidden*
    volumes:
      - /srv/dev-disk-by-uuid-ca57bd51-069f-4c87-b8a9-18716f5a8707/nxtc/db_data:/var/lib/mysql
    restart: always

volumes:
  nextcloud:
  db:

Edit:

--------------- start of edit ---------------
For instance, I just ran the process you mentioned (docker compose pull && docker compose up -d) to try to update my fresh install from 30.0.0 to 30.0.1 and the version showed in the WebUI is still 30.0.0

image

This is the docker file for the new install:

services:
  nextcloud:
    image: nextcloud:latest
    container_name: nc
    ports:
      - "4633:80"
    volumes:
      - /srv/dev-disk-by-uuid-ca57bd51-069f-4c87-b8a9-18716f5a8707/nc/config:/var/www/html/config
      - /srv/dev-disk-by-uuid-ca57bd51-069f-4c87-b8a9-18716f5a8707/nc/data:/var/www/html/data
    environment:
      - MYSQL_HOST=db
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextclouddb
      - MYSQL_PASSWORD=nope
    depends_on:
      - db
    restart: always

  db:
    image: mariadb:latest
    container_name: nc_db
    environment:
      - MYSQL_ROOT_PASSWORD=nope
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextclouddb
      - MYSQL_PASSWORD=nope
    volumes:
      - /srv/dev-disk-by-uuid-ca57bd51-069f-4c87-b8a9-18716f5a8707/nc/db_data:/var/lib/mysql
    restart: always

volumes:
  nextcloud:
  db:

Seeing that the problem repeated, I suspect you might be right about the volumes misconfiguration or another type of mistake happening in the docker compose file, however, I cannot seem to find it.

--------------- end of edit ---------------