diff --git a/appinfo/info.xml b/appinfo/info.xml
index 38208a16919..7dea0aa366c 100644
--- a/appinfo/info.xml
+++ b/appinfo/info.xml
@@ -18,7 +18,7 @@
* 🌉 **Sync with other chat solutions** With [Matterbridge](https://github.com/42wim/matterbridge/) being integrated in Talk, you can easily sync a lot of other chat solutions to Nextcloud Talk and vice-versa.
]]>
- 25.0.1
+ 25.0.2
AGPL-3.0-or-later
Christian Lorang
diff --git a/docs/changelogs/changelog-25.md b/docs/changelogs/changelog-25.md
index 653de841c5b..a1e03fc6b4a 100644
--- a/docs/changelogs/changelog-25.md
+++ b/docs/changelogs/changelog-25.md
@@ -5,6 +5,11 @@
# Changelog
All notable changes to this project will be documented in this file.
+## 25.0.2 – 2026-09-25
+### Fixed
+- fix(migration): Correctly check for Index rather than Constraint
+ [#19540](https://github.com/nextcloud/spreed/pull/19540)
+
## 25.0.1 – 2026-09-24
### Changed
- Update dependencies
diff --git a/lib/Migration/Version22001Date20250927174738.php b/lib/Migration/Version22001Date20250927174738.php
index ef752867382..6d9af18647a 100644
--- a/lib/Migration/Version22001Date20250927174738.php
+++ b/lib/Migration/Version22001Date20250927174738.php
@@ -14,6 +14,7 @@
/**
* Due to a missing return the migration content was never executed.
* The changes are reapplied in @see Version25000Date20260923155555
+ * and then again by @see Version25000Date20260925166666
*/
class Version22001Date20250927174738 extends SimpleMigrationStep {
}
diff --git a/lib/Migration/Version25000Date20260923155555.php b/lib/Migration/Version25000Date20260923155555.php
index e8447c01ccf..3723fd876bb 100644
--- a/lib/Migration/Version25000Date20260923155555.php
+++ b/lib/Migration/Version25000Date20260923155555.php
@@ -9,35 +9,11 @@
namespace OCA\Talk\Migration;
-use Closure;
-use OCP\DB\ISchemaWrapper;
-use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
-use Override;
+/**
+ * Replacing @see Version22001Date20250927174738
+ * Replaced by @see Version25000Date20260925166666
+ */
class Version25000Date20260923155555 extends SimpleMigrationStep {
- /**
- * @param IOutput $output
- * @param Closure(): ISchemaWrapper $schemaClosure
- * @param array $options
- * @return null|ISchemaWrapper
- */
- #[Override]
- public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
- /** @var ISchemaWrapper $schema */
- $schema = $schemaClosure();
-
- $changed = false;
- $table = $schema->getTable('talk_thread_attendees');
- if ($table->hasUniqueConstraint('tta_thread_attendee')) {
- $table->removeUniqueConstraint('tta_thread_attendee');
- $changed = true;
- }
- if (!$table->hasUniqueConstraint('tta_throom_attendee')) {
- $table->addUniqueIndex(['thread_id', 'room_id', 'actor_type', 'actor_id'], 'tta_throom_attendee');
- $changed = true;
- }
-
- return $changed ? $schema : null;
- }
}
diff --git a/lib/Migration/Version25000Date20260925166666.php b/lib/Migration/Version25000Date20260925166666.php
new file mode 100644
index 00000000000..550610c1d2b
--- /dev/null
+++ b/lib/Migration/Version25000Date20260925166666.php
@@ -0,0 +1,47 @@
+getTable('talk_thread_attendees');
+ if ($table->hasIndex('tta_thread_attendee')) {
+ $table->dropIndex('tta_thread_attendee');
+ $changed = true;
+ }
+ if (!$table->hasIndex('tta_throom_attendee')) {
+ $table->addUniqueIndex(['thread_id', 'room_id', 'actor_type', 'actor_id'], 'tta_throom_attendee');
+ $changed = true;
+ }
+
+ return $changed ? $schema : null;
+ }
+}
diff --git a/package-lock.json b/package-lock.json
index f0b937a7885..d757f777d96 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "talk",
- "version": "25.0.1",
+ "version": "25.0.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "talk",
- "version": "25.0.1",
+ "version": "25.0.2",
"license": "agpl",
"dependencies": {
"@matrix-org/olm": "^3.2.15",
diff --git a/package.json b/package.json
index 0bef2f86a07..e73a6a6080b 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "talk",
- "version": "25.0.1",
+ "version": "25.0.2",
"private": true,
"description": "",
"license": "agpl",