Nextcloud wants to downgrade after upgrade to php 8.2.10

Nextcloud version (eg, 20.0.5): 27.0.2.1
Operating system and version (eg, Ubuntu 20.04): Debian 12.1
Apache or nginx version (eg, Apache 2.4.25): Apache 2.4.57
PHP version (eg, 7.4): 8.2

The issue you are facing:
On September 7 I upgraded to 27.0.2.1 and everything was running fine until tonight. Since then I am getting an error and can not access anything:

Downgrading is not supported and is likely to cause unpredictable issues (from 27.0.2.1 to 26.0.5.1) 

I do not use a package manager for nextcloud nor did I intended to do a downgrade. At the time between working and not working I have not done anything actively on the server. HOWEVER(!), at the time just before the error appearing, an unsupervised upgrade of php8.2-redis and php8.2-fpm was done

I don’t even know where this information (downgrade to 26.0.5.1) is coming from.
In the main web directory, there are no files altered after the upgrade

# find -newermt '130 hours ago'                                                               
./config
./config/mimetypemapping.json
./config/config.php

files/ocdata/updater-50b4f18be3c0c/downloads is empty. A search for “26.0.5” in the database lists only oc_whats_new

Is this the first time you’ve seen this error? (Y/N): Y

Steps to replicate it:
Don’t know oO. Might be related to latest php update, but not sure(?)

The output of your config.php file in /path/to/nextcloud (make sure you remove any identifiable information!):

<?php
$CONFIG = array (
  'passwordsalt' => 'replaced',
  'datadirectory' => '/replaced/files/ocdata',
  'dbtype' => 'mysql',
  'version' => '27.0.2.1',
  'dbname' => 'c2owncloud',
  'dbhost' => 'localhost',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'replaced',
  'dbpassword' => 'replaced',
  'installed' => true,
  'versions' => 'true',
  'instanceid' => 'replaced',
  'maintenance' => false,
  'theme' => '',
  'loglevel' => 2,
  'logtimezone' => 'Europe/Berlin',
  'log_rotate_size' => 10485760,
  'default_language' => 'de',
  'forcessl' => true,
  'maxZipInputSize' => 838860800,
  'allowZipDownload' => true,
  'enable_previews' => true,
  'trusted_domains' => 
  array (
    0 => 'replaced',
    1 => 'replaced',
  ),
  'filelocking.enabled' => true,
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'redis' => 
  array (
    'host' => 'localhost',
    'port' => 6379,
  ),
  'asset-pipeline.enabled' => true,
  'mail_smtpmode' => 'smtp',
  'mail_from_address' => 'replaced',
  'mail_domain' => 'replaced',
  'secret' => 'replaced',
  'custom_csp_policy' => 'default-src \'self\'; script-src \'self\' \'unsafe-inline\' \'unsafe-eval\'; style-src \'self\' \'unsafe-inline\'; frame-src *; img-src *; font-src \'self\' data:; media-src *',
  'appstore.experimental.enabled' => true,
  'overwrite.cli.url' => 'replaced',
  'htaccess.RewriteBase' => '/',
  'knowledgebaseenabled' => false,
  'updater.release.channel' => 'stable',
  'mail_smtpauthtype' => 'LOGIN',
  'mysql.utf8mb4' => true,
  'activity_expire_days' => 90,
  'trashbin_retention_obligation' => 'auto, 14',
  'app_install_overwrite' => 
  array (
    0 => 'files_downloadactivity',
    1 => 'cookbook',
    2 => 'joplin',
    4 => 'workflow_script',
  ),
  'mail_smtpsecure' => 'tls',
  'mail_sendmailmode' => 'smtp',
  'mail_smtpauth' => 1,
  'mail_smtphost' => 'replaced',
  'mail_smtpport' => '587',
  'mail_smtpname' => 'replaced',
  'mail_smtppassword' => 'replaced',
  'default_phone_region' => 'DE',
);

Output errors in nextcloud.log in /var/www/ or as admin user in top right menu, filtering for errors. Use a pastebin service if necessary.

{"reqId":"trd9D1jVFY7B8azKDKFw","level":3,"time":"2023-09-13T06:22:15+02:00","remoteAddr":"replaced","user":"replaced","app":"webdav","method":"REPORT","url":"/remote.php/dav/principals/users/replaced/","message":"The input element to parse is empty. Do not attempt to parse","userAgent":"macOS/13.5.1 (22G90) dataaccessd/1.0","version":"27.0.2.1","exception":{"Exception":"Sabre\\Xml\\ParseException","Message":"The input element to parse is empty. Do not attempt to parse","Code":0,"Trace":[{"file":"/var/www/clients/client1/web29/web/3rdparty/sabre/dav/lib/DAV/CorePlugin.php","line":684,"function":"parse","class":"Sabre\\Xml\\Service","type":"->"},{"file":"/var/www/clients/client1/web29/web/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"httpReport","class":"Sabre\\DAV\\CorePlugin","type":"->"},{"file":"/var/www/clients/client1/web29/web/3rdparty/sabre/dav/lib/DAV/Server.php","line":472,"function":"emit","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/clients/client1/web29/web/3rdparty/sabre/dav/lib/DAV/Server.php","line":253,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/clients/client1/web29/web/3rdparty/sabre/dav/lib/DAV/Server.php","line":321,"function":"start","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/clients/client1/web29/web/apps/dav/lib/Server.php","line":366,"function":"exec","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/clients/client1/web29/web/apps/dav/appinfo/v2/remote.php","line":35,"function":"exec","class":"OCA\\DAV\\Server","type":"->"},{"file":"/var/www/clients/client1/web29/web/remote.php","line":172,"args":["/var/www/clients/client1/web29/web/apps/dav/appinfo/v2/remote.php"],"function":"require_once"}],"File":"/var/www/clients/client1/web29/web/3rdparty/sabre/xml/lib/Service.php","Line":122,"message":"The input element to parse is empty. Do not attempt to parse","exception":{},"CustomMessage":"The input element to parse is empty. Do not attempt to parse"}}

I have seen the above error before and although I do not know the cause, it might be unrelated. Then the error started and is since then spamming the logfile

{"reqId":"HKOrM69wKjBRnrTJybZZ","level":3,"time":"2023-09-13T06:43:28+02:00","remoteAddr":"replaced","user":"--","app":"core","method":"GET","url":"/index.php/204","message":"Downgrading is not supported and is likely to cause unpredictable issues (from 27.0.2.1 to 26.0.5.1) ","userAgent":"Mozilla/5.0 (Android) Nextcloud-android/3.25.0","version":"27.0.2.1","data":{"app":"core"}}
{"reqId":"HKOrM69wKjBRnrTJybZZ","level":3,"time":"2023-09-13T06:43:28+02:00","remoteAddr":"replaced","user":"--","app":"core","method":"GET","url":"/index.php/204","message":"Downgrading is not supported and is likely to cause unpredictable issues (from 27.0.2.1 to 26.0.5.1)","userAgent":"Mozilla/5.0 (Android) Nextcloud-android/3.25.0","version":"27.0.2.1","exception":{"Exception":"OCP\\HintException","Message":"Downgrading is not supported and is likely to cause unpredictable issues (from 27.0.2.1 to 26.0.5.1)","Code":0,"Trace":[{"file":"/var/www/clients/client1/web29/web/lib/public/Util.php","line":570,"function":"needUpgrade","class":"OC_Util","type":"::"},{"file":"/var/www/clients/client1/web29/web/lib/private/legacy/OC_Template.php","line":113,"function":"needUpgrade","class":"OCP\\Util","type":"::"},{"file":"/var/www/clients/client1/web29/web/lib/private/legacy/OC_Template.php","line":77,"function":"initTemplateEngine","class":"OC_Template","type":"::"},{"file":"/var/www/clients/client1/web29/web/lib/private/legacy/OC_Template.php","line":295,"function":"__construct","class":"OC_Template","type":"->"},{"file":"/var/www/clients/client1/web29/web/index.php","line":44,"function":"printErrorPage","class":"OC_Template","type":"::"}],"File":"/var/www/clients/client1/web29/web/lib/private/legacy/OC_Util.php","Line":1215,"Hint":"Downgrading is not supported and is likely to cause unpredictable issues (from 27.0.2.1 to 26.0.5.1)","CustomMessage":"--"}}

[...]

{"reqId":"HieJifIGaoT9cHfmM55d","level":3,"time":"2023-09-13T18:04:07+02:00","remoteAddr":"replaced","user":"--","app":"core","method":"GET","url":"/","message":"Downgrading is not supported and is likely to cause unpredictable issues (from 27.0.2.1 to 26.0.5.1) ","userAgent":"Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/117.0","version":"27.0.2.1","data":{"app":"core"}}
{"reqId":"HieJifIGaoT9cHfmM55d","level":3,"time":"2023-09-13T18:04:07+02:00","remoteAddr":"replaced","user":"--","app":"core","method":"GET","url":"/","message":"Downgrading is not supported and is likely to cause unpredictable issues (from 27.0.2.1 to 26.0.5.1)","userAgent":"Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/117.0","version":"27.0.2.1","exception":{"Exception":"OCP\\HintException","Message":"Downgrading is not supported and is likely to cause unpredictable issues (from 27.0.2.1 to 26.0.5.1)","Code":0,"Trace":[{"file":"/var/www/clients/client1/web29/web/lib/public/Util.php","line":570,"function":"needUpgrade","class":"OC_Util","type":"::"},{"file":"/var/www/clients/client1/web29/web/lib/private/legacy/OC_Template.php","line":113,"function":"needUpgrade","class":"OCP\\Util","type":"::"},{"file":"/var/www/clients/client1/web29/web/lib/private/legacy/OC_Template.php","line":77,"function":"initTemplateEngine","class":"OC_Template","type":"::"},{"file":"/var/www/clients/client1/web29/web/lib/private/legacy/OC_Template.php","line":295,"function":"__construct","class":"OC_Template","type":"->"},{"file":"/var/www/clients/client1/web29/web/index.php","line":44,"function":"printErrorPage","class":"OC_Template","type":"::"}],"File":"/var/www/clients/client1/web29/web/lib/private/legacy/OC_Util.php","Line":1215,"Hint":"Downgrading is not supported and is likely to cause unpredictable issues (from 27.0.2.1 to 26.0.5.1)","CustomMessage":"--"}}

updater.log shows:
update to 26.0.5.1 on 2023-08-29T19:11:09+0000
update to 27.0.2.1 on 2023-09-07T13:24:44+0000

So, the error first appeared on 6:43 this morning and this is just after an unattended upgrade was done:

2023-09-13 06:39:56 startup archives unpack
2023-09-13 06:39:56 upgrade php7.4-redis:amd64 5.3.7++-1+0~20230619.51+debian12~1.gbp4ff337 6.0.0-1+0~20230912.52+debian12~1.gbp4a33c5
2023-09-13 06:39:56 status half-configured php7.4-redis:amd64 5.3.7++-1+0~20230619.51+debian12~1.gbp4ff337
2023-09-13 06:39:56 status triggers-pending php7.4-fpm:amd64 1:7.4.33-8+0~20230904.88+debian12~1.gbp87c414
2023-09-13 06:39:56 status triggers-pending php7.4-cli:amd64 1:7.4.33-8+0~20230904.88+debian12~1.gbp87c414
2023-09-13 06:39:56 status unpacked php7.4-redis:amd64 5.3.7++-1+0~20230619.51+debian12~1.gbp4ff337
2023-09-13 06:39:56 status half-installed php7.4-redis:amd64 5.3.7++-1+0~20230619.51+debian12~1.gbp4ff337
2023-09-13 06:39:56 status unpacked php7.4-redis:amd64 6.0.0-1+0~20230912.52+debian12~1.gbp4a33c5
2023-09-13 06:39:56 upgrade php8.2-redis:amd64 5.3.7++-1+0~20230619.51+debian12~1.gbp4ff337 6.0.0-1+0~20230912.52+debian12~1.gbp4a33c5
2023-09-13 06:39:56 status half-configured php8.2-redis:amd64 5.3.7++-1+0~20230619.51+debian12~1.gbp4ff337
2023-09-13 06:39:57 status unpacked php8.2-redis:amd64 5.3.7++-1+0~20230619.51+debian12~1.gbp4ff337
2023-09-13 06:39:57 status half-installed php8.2-redis:amd64 5.3.7++-1+0~20230619.51+debian12~1.gbp4ff337
2023-09-13 06:39:57 status unpacked php8.2-redis:amd64 6.0.0-1+0~20230912.52+debian12~1.gbp4a33c5
2023-09-13 06:39:57 startup packages configure
2023-09-13 06:39:57 configure php8.2-redis:amd64 6.0.0-1+0~20230912.52+debian12~1.gbp4a33c5 <none>
2023-09-13 06:39:57 status unpacked php8.2-redis:amd64 6.0.0-1+0~20230912.52+debian12~1.gbp4a33c5
2023-09-13 06:39:57 status half-configured php8.2-redis:amd64 6.0.0-1+0~20230912.52+debian12~1.gbp4a33c5
2023-09-13 06:39:57 status installed php8.2-redis:amd64 6.0.0-1+0~20230912.52+debian12~1.gbp4a33c5
2023-09-13 06:39:57 status triggers-pending php8.2-cgi:amd64 8.2.10-1+0~20230904.33+debian12~1.gbp2dc84c
2023-09-13 06:39:57 status triggers-pending php8.2-fpm:amd64 8.2.10-1+0~20230904.33+debian12~1.gbp2dc84c
2023-09-13 06:39:57 status triggers-pending php8.2-cli:amd64 8.2.10-1+0~20230904.33+debian12~1.gbp2dc84c
2023-09-13 06:39:57 configure php7.4-redis:amd64 6.0.0-1+0~20230912.52+debian12~1.gbp4a33c5 <none>
2023-09-13 06:39:57 status unpacked php7.4-redis:amd64 6.0.0-1+0~20230912.52+debian12~1.gbp4a33c5
2023-09-13 06:39:57 status half-configured php7.4-redis:amd64 6.0.0-1+0~20230912.52+debian12~1.gbp4a33c5
2023-09-13 06:39:57 status installed php7.4-redis:amd64 6.0.0-1+0~20230912.52+debian12~1.gbp4a33c5
2023-09-13 06:39:57 status triggers-pending php7.4-cgi:amd64 1:7.4.33-8+0~20230904.88+debian12~1.gbp87c414
2023-09-13 06:39:57 trigproc php7.4-cli:amd64 1:7.4.33-8+0~20230904.88+debian12~1.gbp87c414 <none>
2023-09-13 06:39:57 status half-configured php7.4-cli:amd64 1:7.4.33-8+0~20230904.88+debian12~1.gbp87c414
2023-09-13 06:39:57 status installed php7.4-cli:amd64 1:7.4.33-8+0~20230904.88+debian12~1.gbp87c414
2023-09-13 06:39:57 trigproc php7.4-fpm:amd64 1:7.4.33-8+0~20230904.88+debian12~1.gbp87c414 <none>
2023-09-13 06:39:57 status half-configured php7.4-fpm:amd64 1:7.4.33-8+0~20230904.88+debian12~1.gbp87c414
2023-09-13 06:39:57 status installed php7.4-fpm:amd64 1:7.4.33-8+0~20230904.88+debian12~1.gbp87c414
2023-09-13 06:39:57 trigproc php8.2-cgi:amd64 8.2.10-1+0~20230904.33+debian12~1.gbp2dc84c <none>
2023-09-13 06:39:57 status half-configured php8.2-cgi:amd64 8.2.10-1+0~20230904.33+debian12~1.gbp2dc84c
2023-09-13 06:39:57 status installed php8.2-cgi:amd64 8.2.10-1+0~20230904.33+debian12~1.gbp2dc84c
2023-09-13 06:39:57 trigproc php8.2-fpm:amd64 8.2.10-1+0~20230904.33+debian12~1.gbp2dc84c <none>
2023-09-13 06:39:57 status half-configured php8.2-fpm:amd64 8.2.10-1+0~20230904.33+debian12~1.gbp2dc84c
2023-09-13 06:39:58 status installed php8.2-fpm:amd64 8.2.10-1+0~20230904.33+debian12~1.gbp2dc84c
2023-09-13 06:39:58 trigproc php8.2-cli:amd64 8.2.10-1+0~20230904.33+debian12~1.gbp2dc84c <none>
2023-09-13 06:39:58 status half-configured php8.2-cli:amd64 8.2.10-1+0~20230904.33+debian12~1.gbp2dc84c
2023-09-13 06:39:58 status installed php8.2-cli:amd64 8.2.10-1+0~20230904.33+debian12~1.gbp2dc84c
2023-09-13 06:39:58 trigproc php7.4-cgi:amd64 1:7.4.33-8+0~20230904.88+debian12~1.gbp87c414 <none>
2023-09-13 06:39:58 status half-configured php7.4-cgi:amd64 1:7.4.33-8+0~20230904.88+debian12~1.gbp87c414
2023-09-13 06:39:58 status installed php7.4-cgi:amd64 1:7.4.33-8+0~20230904.88+debian12~1.gbp87c414

So, the nextcloud installation might be affected by the upgrade of php8.2-redis to 6.0.0-1+0~20230912.52+debian12~1.gbp4a33c5 and php8.2-fpm to 8.2.10-1+0~20230904.33+debian12~1.gbp2dc84c

I restarted these services, flushed all redis databases and opcache and rebooted the whole server to no avail. Any ideas?

I did a downgrade to redis 5 (no change) and then PHP-8.2.7-1 and everything became working again. So, there might be a bug with php-8.2.10

Well… not everything. When I open contacts/calendar in the web interface I get a spinning wheel and when entering admin page I get an internal server error page.

{"reqId":"hPoUnnrNVZAUPy6Di5wR","level":3,"time":"2023-09-13T19:35:52+02:00","remoteAddr":"replaced","user":"replaced","app":"PHP","method":"GET","url":"/settings/admin/ov
erview","message":"include(/var/www/clients/client1/web29/web/lib/composer/composer/../../../lib/private/Updater/ChangesResult.php): Failed to open stream: No such file or
directory at /var/www/clients/client1/web29/web/lib/composer/composer/ClassLoader.php#578","userAgent":"Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/117.0
","version":"26.0.2.1","data":{"app":"PHP"}}
{"reqId":"hPoUnnrNVZAUPy6Di5wR","level":3,"time":"2023-09-13T19:35:52+02:00","remoteAddr":"replaced","user":"replaced","app":"PHP","method":"GET","url":"/settings/admin/ov
erview","message":"include(): Failed opening '/var/www/clients/client1/web29/web/lib/composer/composer/../../../lib/private/Updater/ChangesResult.php' for inclusion (includ
e_path='/var/www/clients/client1/web29/web/3rdparty/pear/archive_tar:/var/www/clients/client1/web29/web/3rdparty/pear/console_getopt:/var/www/clients/client1/web29/web/3rdp
arty/pear/pear-core-minimal/src:/var/www/clients/client1/web29/web/3rdparty/pear/pear_exception:/var/www/clients/client1/web29/web/apps') at /var/www/clients/client1/web29/
web/lib/composer/composer/ClassLoader.php#578","userAgent":"Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/117.0","version":"26.0.2.1","data":{"app":"PHP"}}
{"reqId":"hPoUnnrNVZAUPy6Di5wR","level":3,"time":"2023-09-13T19:35:52+02:00","remoteAddr":"replaced","user":"replaced","app":"index","method":"GET","url":"/settings/admin/
overview","message":"Class \"OC\\Updater\\ChangesResult\" not found in file '/var/www/clients/client1/web29/web/lib/private/Updater/ChangesMapper.php' line 57","userAgent":
"Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/117.0","version":"26.0.2.1","exception":{"Exception":"Exception","Message":"Class \"OC\\Updater\\ChangesResu
lt\" not found in file '/var/www/clients/client1/web29/web/lib/private/Updater/ChangesMapper.php' line 57","Code":0,"Trace":[{"file":"/var/www/clients/client1/web29/web/lib
/private/AppFramework/App.php","line":183,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/clients/client1/web29/web/lib/pr
ivate/Route/Router.php","line":315,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"/var/www/clients/client1/web29/web/lib/base.php","line":1058,"fun
ction":"match","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/clients/client1/web29/web/index.php","line":36,"function":"handleRequest","class":"OC","type":"::"
}],"File":"/var/www/clients/client1/web29/web/lib/private/AppFramework/Http/Dispatcher.php","Line":169,"Previous":{"Exception":"Error","Message":"Class \"OC\\Updater\\Chang
esResult\" not found","Code":0,"Trace":[{"file":"/var/www/clients/client1/web29/web/lib/private/Updater/ChangesCheck.php","line":71,"function":"getChanges","class":"OC\\Upd
ater\\ChangesMapper","type":"->"},{"file":"/var/www/clients/client1/web29/web/apps/updatenotification/lib/UpdateChecker.php","line":69,"function":"check","class":"OC\\Updat
er\\ChangesCheck","type":"->"},{"file":"/var/www/clients/client1/web29/web/apps/updatenotification/lib/Settings/Admin.php","line":95,"function":"getUpdateState","class":"OC
A\\UpdateNotification\\UpdateChecker","type":"->"},{"file":"/var/www/clients/client1/web29/web/apps/settings/lib/Controller/CommonSettingsTrait.php","line":129,"function":"
getForm","class":"OCA\\UpdateNotification\\Settings\\Admin","type":"->"},{"file":"/var/www/clients/client1/web29/web/apps/settings/lib/Controller/AdminSettingsController.ph
p","line":83,"function":"formatSettings","class":"OCA\\Settings\\Controller\\AdminSettingsController","type":"->"},{"file":"/var/www/clients/client1/web29/web/apps/settings
/lib/Controller/CommonSettingsTrait.php","line":149,"function":"getSettings","class":"OCA\\Settings\\Controller\\AdminSettingsController","type":"->"},{"file":"/var/www/cli
ents/client1/web29/web/apps/settings/lib/Controller/AdminSettingsController.php","line":68,"function":"getIndexResponse","class":"OCA\\Settings\\Controller\\AdminSettingsCo
ntroller","type":"->"},{"file":"/var/www/clients/client1/web29/web/lib/private/AppFramework/Http/Dispatcher.php","line":230,"function":"index","class":"OCA\\Settings\\Contr
oller\\AdminSettingsController","type":"->"},{"file":"/var/www/clients/client1/web29/web/lib/private/AppFramework/Http/Dispatcher.php","line":137,"function":"executeControl
ler","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/clients/client1/web29/web/lib/private/AppFramework/App.php","line":183,"function":"dispatch
","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/clients/client1/web29/web/lib/private/Route/Router.php","line":315,"function":"main","class":"
OC\\AppFramework\\App","type":"::"},{"file":"/var/www/clients/client1/web29/web/lib/base.php","line":1058,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file
":"/var/www/clients/client1/web29/web/index.php","line":36,"function":"handleRequest","class":"OC","type":"::"}],"File":"/var/www/clients/client1/web29/web/lib/private/Upda
ter/ChangesMapper.php","Line":57},"CustomMessage":"--"}}

The old version string makes me wonder… Where is this coming from? This version string is not found in the database, nor in any file (with grep “26.0.2” * -r in web files and appdata folder)