NextCloud: Web interface is unreachable after Update

Recently I did the 28.0.14~1 update and since then the NextCloud instance is borked.
When I open the web interface it always shows the Maintenance Screen (couple of weeks now).
I tried the " Disable Maintenance Mode" and that results in a screen that shows:
" Update needed"
Please use the command line updates because updating via browser is disabled in your config.php.
For help, see documentation

Some logs:

2025-04-19T08:30:15+02:00  Running nextcloud...
2025-04-19T08:30:15+02:00  Starting PostgreSQL db server...
2025-04-19T08:30:15+02:00  waiting for server to start....2025-04-19 06:30:15.458 UTC [84] LOG: starting PostgreSQL 15.11 on x86_64-alpine-linux-musl, compiled by gcc (Alpine 14.2.0) 14.2.0, 64-bit
2025-04-19T08:30:15+02:00  2025-04-19 06:30:15.459 UTC [84] LOG: listening on IPv6 address "::1", port 5432
2025-04-19T08:30:15+02:00  2025-04-19 06:30:15.459 UTC [84] LOG: listening on IPv4 address "127.0.0.1", port 5432
2025-04-19T08:30:15+02:00  2025-04-19 06:30:15.465 UTC [84] LOG: listening on Unix socket "/run/postgresql/.s.PGSQL.5432"
2025-04-19T08:30:15+02:00  2025-04-19 06:30:15.481 UTC [87] LOG: database system was interrupted; last known up at 2025-04-19 06:18:34 UTC
2025-04-19T08:30:15+02:00  2025-04-19 06:30:15.548 UTC [87] LOG: database system was not properly shut down; automatic recovery in progress
2025-04-19T08:30:15+02:00  2025-04-19 06:30:15.555 UTC [87] LOG: redo starts at 2/4189CCE0
2025-04-19T08:30:15+02:00  2025-04-19 06:30:15.555 UTC [87] LOG: invalid record length at 2/4189CD18: wanted 24, got 0
2025-04-19T08:30:15+02:00  2025-04-19 06:30:15.555 UTC [87] LOG: redo done at 2/4189CCE0 system usage: CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s
2025-04-19T08:30:15+02:00  2025-04-19 06:30:15.569 UTC [85] LOG: checkpoint starting: end-of-recovery immediate wait
2025-04-19T08:30:15+02:00  2025-04-19 06:30:15.614 UTC [85] LOG: checkpoint complete: wrote 3 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.001 s, sync=0.012 s, total=0.052 s; sync files=2, longest=0.006 s, average=0.006 s; distance=0 kB, estimate=0 kB
2025-04-19T08:30:15+02:00  2025-04-19 06:30:15.623 UTC [84] LOG: database system is ready to accept connections
2025-04-19T08:30:15+02:00  done
2025-04-19T08:30:15+02:00  server started
2025-04-19T08:30:15+02:00  Starting nginx server...
2025-04-19T08:30:15+02:00  Nextcloud or one of the apps require upgrade - only a limited number of commands are available
2025-04-19T08:30:15+02:00  You may use your browser or the occ upgrade command to do the upgrade
2025-04-19T08:30:15+02:00  Nextcloud 28.0.14
2025-04-19T08:30:16+02:00  The current PHP memory limit is below the recommended value of 512MB.
2025-04-19T08:30:16+02:00  Nextcloud or one of the apps require upgrade - only a limited number of commands are available
2025-04-19T08:30:16+02:00  You may use your browser or the occ upgrade command to do the upgrade
2025-04-19T08:30:16+02:00  Starting Nextcloud frontend...
2025-04-19T08:30:16+02:00  Configuring Nextcloud frontend...
2025-04-19T08:30:16+02:00  Warning: /var/www/html/config/redis.config.php differs from the latest version of this image at /usr/src/nextcloud/config/redis.config.php
2025-04-19T08:30:16+02:00  Warning: /var/www/html/config/reverse-proxy.config.php differs from the latest version of this image at /usr/src/nextcloud/config/reverse-proxy.config.php
2025-04-19T08:30:16+02:00  Warning: /var/www/html/config/s3.config.php differs from the latest version of this image at /usr/src/nextcloud/config/s3.config.php
2025-04-19T08:30:16+02:00  Warning: /var/www/html/config/smtp.config.php differs from the latest version of this image at /usr/src/nextcloud/config/smtp.config.php
2025-04-19T08:30:16+02:00  => Searching for scripts (*.sh) to run, located in the folder: /docker-entrypoint-hooks.d/before-starting
2025-04-19T08:30:16+02:00  [19-Apr-2025 06:30:16] NOTICE: fpm is running, pid 143
2025-04-19T08:30:16+02:00  [19-Apr-2025 06:30:16] NOTICE: ready to handle connections
2025-04-19T08:30:26+02:00  Starting background tasks...
2025-04-19T08:30:26+02:00  crond: crond (busybox 1.37.0) started, log level 0
2025-04-19T08:30:26+02:00  crond: user:www-data entry:*/5 * * * * php -f /var/www/html/cron.php
2025-04-19T08:30:26+02:00  100001000010000100001000010000100001000010000100001000010000
2025-04-19T08:30:26+02:00  111111111111111111111111
2025-04-19T08:30:26+02:00  11111111111111111111111111111111
2025-04-19T08:30:26+02:00  111111111111
2025-04-19T08:30:26+02:00  1111111
2025-04-19T08:30:36+02:00  127.0.0.1 - 19/Apr/2025:06:30:35 +0000 "GET /index.php" 503
2025-04-19T08:30:40+02:00  127.0.0.1 - 19/Apr/2025:06:30:39 +0000 "GET /index.php" 503
2025-04-19T08:30:51+02:00  127.0.0.1 - 19/Apr/2025:06:30:51 +0000 "GET /index.php" 503
2025-04-19T08:31:00+02:00  crond: user:www-data entry:*/5 * * * * php -f /var/www/html/cron.php
2025-04-19T08:31:00+02:00  100001000010000100001000010000100001000010000100001000010000
2025-04-19T08:31:00+02:00  111111111111111111111111
2025-04-19T08:31:00+02:00  11111111111111111111111111111111
2025-04-19T08:31:00+02:00  111111111111
2025-04-19T08:31:00+02:00  1111111
2025-04-19T08:31:00+02:00  crond: wakeup dt=34
2025-04-19T08:31:00+02:00  crond: file www-data:
2025-04-19T08:31:00+02:00  crond: line php -f /var/www/html/cron.php
2025-04-19T08:31:06+02:00  127.0.0.1 - 19/Apr/2025:06:31:06 +0000 "GET /index.php" 503
2025-04-19T08:31:24+02:00  Running nextcloud...
2025-04-19T08:31:24+02:00  Starting PostgreSQL db server...
2025-04-19T08:31:24+02:00  waiting for server to start....2025-04-19 06:31:24.574 UTC [79] LOG: starting PostgreSQL 15.11 on x86_64-alpine-linux-musl, compiled by gcc (Alpine 14.2.0) 14.2.0, 64-bit
2025-04-19T08:31:24+02:00  2025-04-19 06:31:24.574 UTC [79] LOG: listening on IPv6 address "::1", port 5432
2025-04-19T08:31:24+02:00  2025-04-19 06:31:24.574 UTC [79] LOG: listening on IPv4 address "127.0.0.1", port 5432
2025-04-19T08:31:24+02:00  2025-04-19 06:31:24.581 UTC [79] LOG: listening on Unix socket "/run/postgresql/.s.PGSQL.5432"
2025-04-19T08:31:24+02:00  2025-04-19 06:31:24.596 UTC [82] LOG: database system was interrupted; last known up at 2025-04-19 06:30:15 UTC
2025-04-19T08:31:24+02:00  2025-04-19 06:31:24.673 UTC [82] LOG: database system was not properly shut down; automatic recovery in progress
2025-04-19T08:31:24+02:00  2025-04-19 06:31:24.681 UTC [82] LOG: redo starts at 2/4189CD90
2025-04-19T08:31:24+02:00  2025-04-19 06:31:24.681 UTC [82] LOG: invalid record length at 2/4189CDC8: wanted 24, got 0
2025-04-19T08:31:24+02:00  2025-04-19 06:31:24.681 UTC [82] LOG: redo done at 2/4189CD90 system usage: CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s
2025-04-19T08:31:24+02:00  2025-04-19 06:31:24.696 UTC [80] LOG: checkpoint starting: end-of-recovery immediate wait
2025-04-19T08:31:24+02:00  2025-04-19 06:31:24.751 UTC [80] LOG: checkpoint complete: wrote 3 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.001 s, sync=0.014 s, total=0.063 s; sync files=2, longest=0.008 s, average=0.007 s; distance=0 kB, estimate=0 kB
2025-04-19T08:31:24+02:00  2025-04-19 06:31:24.761 UTC [79] LOG: database system is ready to accept connections
2025-04-19T08:31:24+02:00  done
2025-04-19T08:31:24+02:00  server started
2025-04-19T08:31:24+02:00  Starting nginx server...
2025-04-19T08:31:25+02:00  Nextcloud or one of the apps require upgrade - only a limited number of commands are available
2025-04-19T08:31:25+02:00  You may use your browser or the occ upgrade command to do the upgrade
2025-04-19T08:31:25+02:00  Nextcloud 28.0.14
2025-04-19T08:31:25+02:00  The current PHP memory limit is below the recommended value of 512MB.
2025-04-19T08:31:25+02:00  Nextcloud or one of the apps require upgrade - only a limited number of commands are available
2025-04-19T08:31:25+02:00  You may use your browser or the occ upgrade command to do the upgrade
2025-04-19T08:31:25+02:00  Starting Nextcloud frontend...
2025-04-19T08:31:25+02:00  Configuring Nextcloud frontend...
2025-04-19T08:31:25+02:00  Warning: /var/www/html/config/redis.config.php differs from the latest version of this image at /usr/src/nextcloud/config/redis.config.php
2025-04-19T08:31:25+02:00  Warning: /var/www/html/config/reverse-proxy.config.php differs from the latest version of this image at /usr/src/nextcloud/config/reverse-proxy.config.php
2025-04-19T08:31:25+02:00  Warning: /var/www/html/config/s3.config.php differs from the latest version of this image at /usr/src/nextcloud/config/s3.config.php
2025-04-19T08:31:25+02:00  Warning: /var/www/html/config/smtp.config.php differs from the latest version of this image at /usr/src/nextcloud/config/smtp.config.php
2025-04-19T08:31:25+02:00  => Searching for scripts (*.sh) to run, located in the folder: /docker-entrypoint-hooks.d/before-starting
2025-04-19T08:31:25+02:00  [19-Apr-2025 06:31:25] NOTICE: fpm is running, pid 138
2025-04-19T08:31:25+02:00  [19-Apr-2025 06:31:25] NOTICE: ready to handle connections
2025-04-19T08:31:35+02:00  Starting background tasks...
2025-04-19T08:31:35+02:00  crond: crond (busybox 1.37.0) started, log level 0
2025-04-19T08:31:35+02:00  crond: user:www-data entry:*/5 * * * * php -f /var/www/html/cron.php
2025-04-19T08:31:35+02:00  100001000010000100001000010000100001000010000100001000010000
2025-04-19T08:31:35+02:00  111111111111111111111111
2025-04-19T08:31:35+02:00  11111111111111111111111111111111
2025-04-19T08:31:35+02:00  111111111111
2025-04-19T08:31:35+02:00  1111111
2025-04-19T08:31:45+02:00  127.0.0.1 - 19/Apr/2025:06:31:44 +0000 "GET /index.php" 503
2025-04-19T08:32:00+02:00  crond: user:www-data entry:*/5 * * * * php -f /var/www/html/cron.php
2025-04-19T08:32:00+02:00  100001000010000100001000010000100001000010000100001000010000
2025-04-19T08:32:00+02:00  111111111111111111111111
2025-04-19T08:32:00+02:00  11111111111111111111111111111111
2025-04-19T08:32:00+02:00  111111111111
2025-04-19T08:32:00+02:00  1111111
2025-04-19T08:32:00+02:00  crond: wakeup dt=25
2025-04-19T08:32:00+02:00  crond: file www-data:
2025-04-19T08:32:00+02:00  crond: line php -f /var/www/html/cron.php
2025-04-19T08:32:00+02:00  127.0.0.1 - 19/Apr/2025:06:32:00 +0000 "GET /index.php" 503
2025-04-19T08:32:15+02:00  127.0.0.1 - 19/Apr/2025:06:32:15 +0000 "GET /index.php" 503
2025-04-19T08:32:31+02:00  127.0.0.1 - 19/Apr/2025:06:32:31 +0000 "GET /index.php" 503

From your description, since 28.0.14~1 hasn’t been out for the couple of weeks you say you’ve had the problem, I think what you actually did was…

  1. Upgraded to 28.0.14 – upgrade failed and error started
  2. Later upgraded to 28.0.14~1 and the error wasn’t fixed

I think you’ll next need to make sure you have SSH set up so you can access the command line. To do that, follow this guide here: Start9 | Using SSH

When ready, this is the plan…

The fix for users with a broken 28.0.14 installation is:

  1. SSH into the server.

  2. Exec into the nextcloud container (nextcloud needs to be running)

sudo podman exec -it nextcloud.embassy bash
  1. Disable non-default apps by running this command from within the NC container:
sudo podman exec -it nextcloud.embassy bash nextcloud:/var/www/html# declare -A default_map; default_apps=('activity' 'calendar' 'circles' 'cloud_federation_api' 'comments' 'contacts' 'contactsinteraction' 'dashboard' 'dav' 'federatedfilesharing' 'federation' 'files' 'files_pdfviewer' 'files_reminders' 'files_rightclick' 'files_sharing' 'files_trashbin' 'files_versions' 'firstrunwizard' 'logreader' 'lookup_server_connector' 'nextcloud_announcements' 'notifications' 'oauth2' 'password_policy' 'photos' 'privacy' 'provisioning_api' 'recommendations' 'related_resources' 'serverinfo' 'settings' 'sharebymail' 'support' 'survey_client' 'systemtags' 'text' 'theming' 'twofactor_backupcodes' 'updatenotification' 'user_status' 'viewer' 'weather_status' 'workflowengine'); for app in "${default_apps[@]}"; do default_map["$app"]=1; done; enabled_apps=($(sudo -u www-data -E php /var/www/html/occ app:list | awk '/^Enabled:/ {f=1; next} /^Disabled:/ {f=0} f && /^[[:space:]]+-/ {sub(/:$/, "", $2); print $2}')); for enabled_app in "${enabled_apps[@]}"; do if [[ -z "${default_map[$enabled_app]}" ]]; then echo "Disabling non-default app: $enabled_app"; sudo -u www-data -E php /var/www/html/occ app:disable $enabled_app; fi; done

The user should see an output like this:

Disabling non-default app: mail
mail 3.7.24 disabled
Disabling non-default app: richdocuments
richdocuments 8.3.13 disabled
Disabling non-default app: richdocumentscode
richdocumentscode 24.4.1302 disabled

The nextcloud server should now be accessible in the UI (no need to restart).

I managed to get in with SSH and Exec into the next cloud container by

sudo podman exec -it nextcloud.embassy bash

And than disable non default apps by running this command:

declare -A default_map; default_apps=('activity' 'calendar' 'circles' 'cloud_federation_api' 'comments' 'contacts' 'contactsinteraction' 'dashboard' 'dav' 'federatedfilesharing' 'federation' 'files' 'files_pdfviewer' 'files_reminders' 'files_rightclick' 'files_sharing' 'files_trashbin' 'files_versions' 'firstrunwizard' 'logreader' 'lookup_server_connector' 'nextcloud_announcements' 'notifications' 'oauth2' 'password_policy' 'photos' 'privacy' 'provisioning_api' 'recommendations' 'related_resources' 'serverinfo' 'settings' 'sharebymail' 'support' 'survey_client' 'systemtags' 'text' 'theming' 'twofactor_backupcodes' 'updatenotification' 'user_status' 'viewer' 'weather_status' 'workflowengine'); for app in "${default_apps[@]}"; do default_map["$app"]=1; done; enabled_apps=($(sudo -u www-data -E php /var/www/html/occ app:list | awk '/^Enabled:/ {f=1; next} /^Disabled:/ {f=0} f && /^[[:space:]]+-/ {sub(/:$/, "", $2); print $2}')); for enabled_app in "${enabled_apps[@]}"; do if [[ -z "${default_map[$enabled_app]}" ]]; then echo "Disabling non-default app: $enabled_app"; sudo -u www-data -E php /var/www/html/occ app:disable $enabled_app; fi; done

The output in the NC container is this:

Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
nextcloud:/var/www/html# 

But I still see the Upgrade Required screen on the Web UI

You haven’t replied to any of my suggested possibilities at to how you got into this state, which is something we’d need to understand in order to formulate an approach.

If you need to, you could restore from a recent backup and then upgrade again.

Hi @StuPleb , I have not done anything special. I access my server on a almost daily basis to see if there are service updates and if there are I will press the update button. I have not done anything else. I use Nextcloud only for syncing to dos and one other productivity app that uses the nextcloud storage to sync.
I see someone else has a similar issue. I tried to disable maintenance mode this morning and I now see the screen below. Also did the latest update (29.0.14~1) but that did not resolve the issue either.

Tried a hard refresh as well, still the same.

I’m seeing these error in the logs

2025-04-28T14:51:24+02:00  127.0.0.1 - 28/Apr/2025:12:51:24 +0000 "GET /index.php" 503
2025-04-28T14:51:27+02:00  2025-04-28 12:51:27.004 UTC [66203] ERROR: column "type" does not exist at character 45
2025-04-28T14:51:27+02:00  2025-04-28 12:51:27.004 UTC [66203] STATEMENT: SELECT "appid", "configkey", "configvalue", "type" FROM "oc_appconfig" WHERE "lazy" = $1
2025-04-28T14:51:27+02:00  127.0.0.1 - 28/Apr/2025:12:51:26 +0000 "GET /index.php" 503
2025-04-28T14:55:02+02:00  2025-04-28 12:55:02.020 UTC [66252] ERROR: column "type" does not exist at character 45
2025-04-28T14:55:02+02:00  2025-04-28 12:55:02.020 UTC [66252] STATEMENT: SELECT "appid", "configkey", "configvalue", "type" FROM "oc_appconfig" WHERE "lazy" = $1
2025-04-28T14:57:59+02:00  2025-04-28 12:57:59.015 UTC [66292] ERROR: column "type" does not exist at character 45
2025-04-28T14:57:59+02:00  2025-04-28 12:57:59.015 UTC [66292] STATEMENT: SELECT "appid", "configkey", "configvalue", "type" FROM "oc_appconfig" WHERE "lazy" = $1
2025-04-28T14:57:59+02:00  127.0.0.1 - 28/Apr/2025:12:57:58 +0000 "GET /index.php" 503
2025-04-28T15:00:01+02:00  2025-04-28 13:00:01.154 UTC [66322] ERROR: column "type" does not exist at character 45
2025-04-28T15:00:01+02:00  2025-04-28 13:00:01.154 UTC [66322] STATEMENT: SELECT "appid", "configkey", "configvalue", "type" FROM "oc_appconfig" WHERE "lazy" = $1
2025-04-28T15:03:51+02:00  2025-04-28 13:03:51.053 UTC [66372] ERROR: column "type" does not exist at character 45
2025-04-28T15:03:51+02:00  2025-04-28 13:03:51.053 UTC [66372] STATEMENT: SELECT "appid", "configkey", "configvalue", "type" FROM "oc_appconfig" WHERE "lazy" = $1
2025-04-28T15:03:51+02:00  127.0.0.1 - 28/Apr/2025:13:03:50 +0000 "GET /index.php" 503
2025-04-28T15:05:01+02:00  2025-04-28 13:05:01.289 UTC [66389] ERROR: column "type" does not exist at character 45
2025-04-28T15:05:01+02:00  2025-04-28 13:05:01.289 UTC [66389] STATEMENT: SELECT "appid", "configkey", "configvalue", "type" FROM "oc_appconfig" WHERE "lazy" = $1
2025-04-28T15:10:01+02:00  2025-04-28 13:10:01.443 UTC [66458] ERROR: column "type" does not exist at character 45
2025-04-28T15:10:01+02:00  2025-04-28 13:10:01.443 UTC [66458] STATEMENT: SELECT "appid", "configkey", "configvalue", "type" FROM "oc_appconfig" WHERE "lazy" = $1
2025-04-28T15:10:19+02:00  2025-04-28 13:10:19.526 UTC [66462] ERROR: column "type" does not exist at character 45
2025-04-28T15:10:19+02:00  2025-04-28 13:10:19.526 UTC [66462] STATEMENT: SELECT "appid", "configkey", "configvalue", "type" FROM "oc_appconfig" WHERE "lazy" = $1
2025-04-28T15:10:19+02:00  127.0.0.1 - xxxxxxxxx 28/Apr/2025:13:10:19 +0000 "GET /ocs/v1.php" 503
2025-04-28T15:11:14+02:00  2025-04-28 13:11:14.202 UTC [66476] ERROR: column "type" does not exist at character 45
2025-04-28T15:11:14+02:00  2025-04-28 13:11:14.202 UTC [66476] STATEMENT: SELECT "appid", "configkey", "configvalue", "type" FROM "oc_appconfig" WHERE "lazy" = $1
2025-04-28T15:11:14+02:00  127.0.0.1 - 28/Apr/2025:13:11:14 +0000 "HEAD /index.php" 503
2025-04-28T15:11:20+02:00  2025-04-28 13:11:20.848 UTC [66477] ERROR: column "type" does not exist at character 45
2025-04-28T15:11:20+02:00  2025-04-28 13:11:20.848 UTC [66477] STATEMENT: SELECT "appid", "configkey", "configvalue", "type" FROM "oc_appconfig" WHERE "lazy" = $1
2025-04-28T15:11:20+02:00  127.0.0.1 - 28/Apr/2025:13:11:20 +0000 "GET /status.php" 200
2025-04-28T15:11:21+02:00  2025-04-28 13:11:21.042 UTC [66479] ERROR: column "type" does not exist at character 45
2025-04-28T15:11:21+02:00  2025-04-28 13:11:21.042 UTC [66479] STATEMENT: SELECT "appid", "configkey", "configvalue", "type" FROM "oc_appconfig" WHERE "lazy" = $1
2025-04-28T15:11:21+02:00  127.0.0.1 - 28/Apr/2025:13:11:21 +0000 "POST /index.php" 503

And this after restarting the service

2025-04-28T15:20:42+02:00  Running nextcloud...
2025-04-28T15:20:42+02:00  Starting PostgreSQL db server...
2025-04-28T15:20:42+02:00  waiting for server to start....2025-04-28 13:20:42.945 UTC [69] LOG: starting PostgreSQL 15.12 (Debian 15.12-0+deb12u2) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2025-04-28T15:20:42+02:00  2025-04-28 13:20:42.945 UTC [69] LOG: listening on IPv6 address "::1", port 5432
2025-04-28T15:20:42+02:00  2025-04-28 13:20:42.945 UTC [69] LOG: listening on IPv4 address "127.0.0.1", port 5432
2025-04-28T15:20:42+02:00  2025-04-28 13:20:42.953 UTC [69] LOG: listening on Unix socket "/run/postgresql/.s.PGSQL.5432"
2025-04-28T15:20:42+02:00  2025-04-28 13:20:42.970 UTC [72] LOG: database system was interrupted; last known up at 2025-04-25 04:44:46 UTC
2025-04-28T15:20:43+02:00  2025-04-28 13:20:43.246 UTC [72] LOG: database system was not properly shut down; automatic recovery in progress
2025-04-28T15:20:43+02:00  2025-04-28 13:20:43.256 UTC [72] LOG: redo starts at 2/418A0598
2025-04-28T15:20:43+02:00  2025-04-28 13:20:43.256 UTC [72] LOG: invalid record length at 2/418A05D0: wanted 24, got 0
2025-04-28T15:20:43+02:00  2025-04-28 13:20:43.256 UTC [72] LOG: redo done at 2/418A0598 system usage: CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s
2025-04-28T15:20:43+02:00  2025-04-28 13:20:43.273 UTC [70] LOG: checkpoint starting: end-of-recovery immediate wait
2025-04-28T15:20:43+02:00  2025-04-28 13:20:43.334 UTC [70] LOG: checkpoint complete: wrote 3 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.001 s, sync=0.015 s, total=0.069 s; sync files=2, longest=0.008 s, average=0.008 s; distance=0 kB, estimate=0 kB
2025-04-28T15:20:43+02:00  2025-04-28 13:20:43.346 UTC [69] LOG: database system is ready to accept connections
2025-04-28T15:20:43+02:00  done
2025-04-28T15:20:43+02:00  server started
2025-04-28T15:20:43+02:00  Starting nginx server...
2025-04-28T15:20:43+02:00  2025-04-28 13:20:43.555 UTC [103] ERROR: column "type" does not exist at character 45
2025-04-28T15:20:43+02:00  2025-04-28 13:20:43.555 UTC [103] STATEMENT: SELECT "appid", "configkey", "configvalue", "type" FROM "oc_appconfig" WHERE "lazy" = $1
2025-04-28T15:20:43+02:00  Nextcloud or one of the apps require upgrade - only a limited number of commands are available
2025-04-28T15:20:43+02:00  You may use your browser or the occ upgrade command to do the upgrade
2025-04-28T15:20:43+02:00  Nextcloud 29.0.14
2025-04-28T15:20:43+02:00  2025-04-28 13:20:43.758 UTC [119] ERROR: column "type" does not exist at character 45
2025-04-28T15:20:43+02:00  2025-04-28 13:20:43.758 UTC [119] STATEMENT: SELECT "appid", "configkey", "configvalue", "type" FROM "oc_appconfig" WHERE "lazy" = $1
2025-04-28T15:20:43+02:00  Nextcloud or one of the apps require upgrade - only a limited number of commands are available
2025-04-28T15:20:43+02:00  You may use your browser or the occ upgrade command to do the upgrade
2025-04-28T15:20:43+02:00  Starting Nextcloud frontend...
2025-04-28T15:20:43+02:00  Configuring Nextcloud frontend...
2025-04-28T15:20:43+02:00  Warning: /var/www/html/config/redis.config.php differs from the latest version of this image at /usr/src/nextcloud/config/redis.config.php
2025-04-28T15:20:43+02:00  Warning: /var/www/html/config/reverse-proxy.config.php differs from the latest version of this image at /usr/src/nextcloud/config/reverse-proxy.config.php
2025-04-28T15:20:43+02:00  Warning: /var/www/html/config/s3.config.php differs from the latest version of this image at /usr/src/nextcloud/config/s3.config.php
2025-04-28T15:20:43+02:00  Warning: /var/www/html/config/smtp.config.php differs from the latest version of this image at /usr/src/nextcloud/config/smtp.config.php
2025-04-28T15:20:43+02:00  => Searching for scripts (*.sh) to run, located in the folder: /docker-entrypoint-hooks.d/before-starting
2025-04-28T15:20:44+02:00  [28-Apr-2025 13:20:44] NOTICE: fpm is running, pid 131
2025-04-28T15:20:44+02:00  [28-Apr-2025 13:20:44] NOTICE: ready to handle connections
2025-04-28T15:20:53+02:00  Starting background tasks...
2025-04-28T15:22:09+02:00  2025-04-28 13:22:09.088 UTC [195] ERROR: column "type" does not exist at character 45
2025-04-28T15:22:09+02:00  2025-04-28 13:22:09.088 UTC [195] STATEMENT: SELECT "appid", "configkey", "configvalue", "type" FROM "oc_appconfig" WHERE "lazy" = $1
2025-04-28T15:22:09+02:00  127.0.0.1 - 28/Apr/2025:13:22:08 +0000 "GET /index.php" 503

Found something similar
[Bug]: Upgrade FAILED: ERROR: column “type” does not exist at character 45 · Issue #46879 · nextcloud/server

I have tried to uninstall and recover a backup but that backup already had the same issue, I did not see an option to recover any earlier backups.
I know there are probably some other ways to recover my data using SSH but I accepted the data loss and have decided to uninstall Nextcloud and start from scratch by installing it again.

Good to know is that you should not do a backup if the service is borked because than you can’t recover from a backup anymore.

Happy to hear how this can be resolved in the future (recovering a bricked Nextcloud service)

Sorry for my delay in getting back to you. I’m convinced that this is an issue with one of the installed apps. There are likely ways to recover from this state. The first thing I’d have recommended was to use the v29 action in Nextcloud → Actions in StartOS to disable anything and see if that helps.

Some research online did reveal some similar situations.

Yes… if a service is borked, don’t back it up in the borked state. Your backup will then be of that borked state.

Ultimately the files are still in that backup and can be accessed via command line tools.

No worries, I did not have a lot of data in there. I think I did the backup when i did not realize there was a problem. Would be a nice feature to have more than 1 backups per service at some point.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.