spreed sql exception during update

Nextcloud version (eg, 24.0.1): 31.0.8
Talk Server version (eg, 14.0.2): --
Custom Signaling server configured: --
Custom TURN server configured: --
Custom STUN server configured: --

The issue you are facing:
I’m not using talk (app is disabled) at the moment, but the app is installed (by default?) and fails to update when executing occ app:update --all

Is this the first time you’ve seen this error? (Y/N):
N, I’m facing it since updating to 21.1.2. This is a fairly new nextcloud server installation, though. It might be, that the initial version had been 21.1.1 and the update to 21.1.2 was the first upgrade attempt. I didn’t care back then (1907.2025) because I didn’t plan to use spreed and the issue doesn’t seem to have any impact on the rest of the server.

Steps to replicate it:

  1. occ app:update --all

The output of occ app:update:

spreed new version available: 21.1.4
Error: Database error when running migration 19000Date20240709183938 for app spreed
An exception occurred while executing a query: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'remote_server_url' in 'WHERE'
spreed couldn't be updated

Output Admin->Logging:

[app:update] Error: Failure during update of app "spreed"
	from ? by -- at Aug 31, 2025, 10:56:45 PM

What do I need to do to fix the DB? I’m assuming that this is related to “Version19000Date20240709183938.php” which can be found in the “spreed/lib/Migration”?

Then it would mean that

public function postSchemaChange(IOutput $output, Closure $schemaClosure, array $options): void {
                $this->addMissingProtocol('talk_invitations', 'remote_server_url');
                $this->addMissingProtocol('talk_proxy_messages', 'remote_server_url');
                $this->addMissingProtocol('talk_rooms', 'remote_server');
        }

fails.

The column remote_server_url is indeed missing for “talk_invitiations”:

MariaDB [nextcloud]> SHOW COLUMNS FROM oc_talk_invitations;
+----------------------+---------------------+------+-----+---------+----------------+
| Field                | Type                | Null | Key | Default | Extra          |
+----------------------+---------------------+------+-----+---------+----------------+
| id                   | bigint(20)          | NO   | PRI | NULL    | auto_increment |
| room_id              | bigint(20) unsigned | NO   | MUL | NULL    |                |
| user_id              | varchar(255)        | NO   |     | NULL    |                |
| access_token         | varchar(64)         | NO   |     | NULL    |                |
| remote_id            | varchar(255)        | NO   |     | NULL    |                |
| inviter_cloud_id     | varchar(255)        | YES  |     | NULL    |                |
| inviter_display_name | varchar(255)        | YES  |     | NULL    |                |
| local_cloud_id       | varchar(255)        | YES  |     | NULL    |                |
+----------------------+---------------------+------+-----+---------+----------------+

The table talk_proxy_messages does contain remote_server_url and the table talk_rooms does contains remote_server.

So it seems that the talk_invitations table is broken or had been wrongly setup. Any hints how I can fix this?