24.0.6 with Talk/spreed installed, update to 25.0.0RC4 via WebUpdater → broken

I wanted to test the current Nextcloud 25 Release Candidate 4. I have a staging instance, switched to beta channel and used the web installer to do the update. All steps in the first screen were processed without error. The last step is to “continue in webinstaller and do db updates”. In that step, something went wrong. I ended up with the default cloud URL, but with a blank screen (no data served). In NC log, there’s only one message pointing to Talk/spreed as root cause. Irritating is that the NC version is still reported as 24.0.6. Is that an issue that needs to be fixed in spreed or in server?

Disabling spreed with this command lets the updater continue:

occ app:disable spreed

Nextcloud version: 24.0.6→25.0.0RC4
OS: Arch Linux (current)
Webserver: NGINX 1.22
PHP: 8.1
nextcloud.log:

{"reqId":"L15o5bJaeg8fDCnnAca3","level":3,"time":"2022-10-14T11:21:20+02:00","remoteAddr":"192.168.1.2","user":"--","app":"PHP","method":"GET","url":"/",
"message":"Declaration of OCA\\Talk\\Share\\RoomShareProvider::getSharesInFolder($userId, OCP\\Files\\Folder $node, $reshares): array must be compatible
with OCP\\Share\\IShareProvider::getSharesInFolder($userId, OCP\\Files\\Folder $node, $reshares, $shallow = true) at /server/www/datenschutz/stage/apps/s
preed/lib/Share/RoomShareProvider.php#520","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:105.0) Gecko/20100101 Firefox/105.0","version":"24.0.6.1","dat
a":{"app":"PHP"}}

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

<?php
$CONFIG = array (
  'instanceid' => 'ID',
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'memcache.distributed' => '\\OC\\Memcache\\Redis',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'redis' => 
  array (
    'host' => '/PATH/redis.sock',
    'port' => 0,
    'dbindex' => 5,
    'timeout' => 1.5,
  ),
  'logtimezone' => 'Europe/Berlin',
  'mail_from_address' => 'stage',
  'mail_smtpmode' => 'smtp',
  'mail_domain' => 'DOMAIN.de',
  'mail_smtpsecure' => 'tls',
  'mail_sendmailmode' => 'smtp',
  'mail_smtphost' => 'SMTP.DOMAIN.de',
  'mail_smtpport' => '25',
  'trashbin_retention_obligation' => 'auto,30',
  'versions_retention_obligation' => 'auto,366',
  'skeletondirectory' => '',
  'default_language' => 'de',
  'default_locale' => 'de_DE',
  'default_phone_region' => 'DE',
  'simpleSignUpLink.shown' => false,
  'passwordsalt' => 'REDACTED',
  'secret' => 'REDACTED',
  'trusted_domains' => 
  array (
    0 => 'stage.DOMAIN.de',
  ),
  'datadirectory' => '/PATH/stage',
  'dbtype' => 'mysql',
  'version' => '24.0.6.1',
  'overwrite.cli.url' => 'https://stage.DOMAIN.de',
  'dbname' => 'REDACTED',
  'dbhost' => 'localhost',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'mysql.utf8mb4' => true,
  'dbuser' => 'REDACTED',
  'dbpassword' => 'REDACTED',
  'installed' => true,
  'twofactor_enforced' => 'true',
  'twofactor_enforced_groups' => 
  array (
    0 => 'admin',
  ),
  'twofactor_enforced_excluded_groups' => 
  array (
    0 => '2FA-exception',
  ),
  'theme' => '',
  'loglevel' => 2,
  'updater.release.channel' => 'beta',
  'trusted_proxies' => 
  array (
    0 => 'IP',
  ),
  'app_install_overwrite' => 
  array (
    0 => 'files_frommail',
  ),
  'blacklisted_files' => 
  array (
  ),
  'maintenance' => false,
  'updater.secret' => 'REDACTED',
);

nginx access/error log:

"14/Oct/2022:11:21:20 +0200" "GET / HTTP/2.0" "-" "500"

Try completing your update using occ commands in the terminal as issue might be with the web updater.

Might work, sure. But not everyone does have access to a console window – and it should not happen at all. I assume that spreed should be disabled prior to updating, then update NC and install the latest spreed version, then re-enable it. That way it would work. As it is now, I expect all users that do have spreed installed and that try to use the web updater to update from 24 to 25 will stall here.

Okay, but could you still test to see if updating works via occ commands in your case.

Did you upgrade via web oder via updater.phar?

NC/admin/overview → NC/updater

I can, with another (live) instance. None of my 4 test/stage instances left :slight_smile: Will do now and report.

Edit: Done. Good and Bad: I could reproduce the issue.
Yes, issuing occ upgrade does continue and finish the update properly.

What baffles me: After the upgrade, I opened /settings/apps and get shown two updates for these inactive/disabled apps (Mail 1.14.1→2.0.1 and Files Automated Tagging 1.14.0→1.15.0). Shouldn’t those be updated during upgrade?

It may have already loaded app files from the old version, before replacing either Talk or Server files. Rerunning should be fine, CLI updater should be less problematic in general.

I’m irritated. We know that (home) admins run into this, and don’t avoid it?

1 Like

In truth, we home admins run into such issues constantly. It is the reason we are on the forum. :heart:

Well, yeah, kind of. But isn’t testing (especially RC) about polishing such edges?
All I ask here is confirmation that this is a real-world issue, not just mine.
Requires somebody to redo the same steps, or to find this discussion if she/he ran into the same issue.
But “just rerun” doesn’t help, and “use occ” is not available to everybody.

This one is a deeper problem and not specific to 25. No good solution yet, unfortunately.

OK. Do you know of an ticket that addresses this? Would be in server, right? I am unsure how to phrase it there. You seem to know more about it. Would you create a ticket or shall I open one and ask you to add info?

Not by heart, would need to dig the issues as well.

If you want to run beta and RC versions you definitely should have command line access. And also in general I wouldn’t recommend installing Nextcloud on hosting plans without command line access. Especially if you want to use the complete Hub package with Talk, Mail, Office etc.

The issue with the non-working upgrades via webUI seems to be solved on RC4. At least on my test instance, I was able to update from RC4 to RC5 without any issues, using the webUI. With previous versions of NC25, I had to update via CLI and with one version I even had to do a manual upgrade (can’t remember exactly which version that was)

1 Like

I was able to update from RC4 to RC5 without any issues

That’s not what my error above was about: It only triggers when (a) NC24 and (b) spreed is installed and then (c) the update is done via webupdater. The cause is the timely order of commands being executed by the webupdater or the fact that spreed-for24 leads to error 500 if active on nc25. This thread started by doing such an update from 24.0.6 to 25rc4, and still triggered the same issue upon upgrade to rc5 for me. Thing is: One may only test each instance once (without rollback).

Had the error 500 upon updating from NC 24 to 25 on two instances (waiting for upgrading the others).

Here is the error in logs:
AH01071: Got error ‘PHP message: PHP Fatal error: Declaration of OCA\Talk\Share\RoomShareProvider::getSharesInFolder($userId, OCP\Files\Folder $node, $reshares): array must be compatible with OCP\Share\IShareProvider::getSharesInFolder($userId, OCP\Files\Folder $node, $reshares, $shallow = true) in /var/www/vhosts/lrob.cloud/httpdocs/apps/spreed/lib/Share/RoomShareProvider.php on line 520’

Using “occ upgrade” command worked fine.
Spreed should definitely be fixed with an app update.