diff --git a/CHANGELOG.md b/CHANGELOG.md index c8230b85c13..c470ff82327 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ * `Koin`: `4.0.2` -> `4.0.3` * `Coroutines`: * Add `SmartKeyRWLocker.withWriteLocks` extension with vararg keys +* `Transactions`: + * Fix order of rollback actions calling ## 0.25.3 diff --git a/transactions/src/commonMain/kotlin/TransactionsDSL.kt b/transactions/src/commonMain/kotlin/TransactionsDSL.kt index a743b03c4a9..358701cbf8c 100644 --- a/transactions/src/commonMain/kotlin/TransactionsDSL.kt +++ b/transactions/src/commonMain/kotlin/TransactionsDSL.kt @@ -71,7 +71,7 @@ suspend fun doSuspendTransaction( return runCatching { transactionsDSL.block() }.onFailure { e -> - transactionsDSL.rollbackActions.forEach { + transactionsDSL.rollbackActions.reversed().forEach { runCatching { it.invoke(e) }.onFailure { ee ->