From 1c095f0c49180058b244ba3ad97f84811d7d45b4 Mon Sep 17 00:00:00 2001 From: Morgan Chen Date: Thu, 6 Nov 2025 17:48:05 -0800 Subject: [PATCH 1/3] fix an issue where passing transaction object caused sendability error --- Firestore/Swift/Source/AsyncAwait/Firestore+AsyncAwait.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firestore/Swift/Source/AsyncAwait/Firestore+AsyncAwait.swift b/Firestore/Swift/Source/AsyncAwait/Firestore+AsyncAwait.swift index e85ca9a9791..3e4be7a9ba2 100644 --- a/Firestore/Swift/Source/AsyncAwait/Firestore+AsyncAwait.swift +++ b/Firestore/Swift/Source/AsyncAwait/Firestore+AsyncAwait.swift @@ -102,7 +102,7 @@ public extension Firestore { /// explicitly specified in the `updateBlock` parameter. /// - Returns Returns the value returned in the `updateBlock` parameter if no errors occurred. func runTransaction(_ updateBlock: @escaping (Transaction, NSErrorPointer) - -> Any?) async throws -> Any? { + -> sending Any?) async throws -> sending Any? { // This needs to be wrapped in order to express a nullable return value upon success. // See https://github.com/firebase/firebase-ios-sdk/issues/9426 for more details. return try await withCheckedThrowingContinuation { continuation in From 461b68b3686f588e01e8524296b6b001c266da5f Mon Sep 17 00:00:00 2001 From: Morgan Chen Date: Tue, 11 Nov 2025 08:09:19 -0800 Subject: [PATCH 2/3] update changelog --- Firestore/CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Firestore/CHANGELOG.md b/Firestore/CHANGELOG.md index d52debcd554..8f461086289 100644 --- a/Firestore/CHANGELOG.md +++ b/Firestore/CHANGELOG.md @@ -1,5 +1,7 @@ # Unreleased - [feature] Add `Pipeline` support. +- [fixed] Fixed an issue where the returned object in transaction blocks could not + pass across actor boundaries in Swift 6 (#15467). # 12.4.0 - [fixed] Implemented an internal workaround to fix From 3980c6c1514f76734e9cb14ebdc80f2c88befe7b Mon Sep 17 00:00:00 2001 From: Morgan Chen Date: Tue, 11 Nov 2025 08:41:10 -0800 Subject: [PATCH 3/3] fix format --- Firestore/Swift/Source/Stages.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Firestore/Swift/Source/Stages.swift b/Firestore/Swift/Source/Stages.swift index eab46bf60ff..42d01ef42bb 100644 --- a/Firestore/Swift/Source/Stages.swift +++ b/Firestore/Swift/Source/Stages.swift @@ -26,7 +26,8 @@ import Foundation protocol Stage { var name: String { get } var bridge: StageBridge { get } - /// The `errorMessage` defaults to `nil`. Errors during stage construction are captured and thrown later when `execute()` is called. + /// The `errorMessage` defaults to `nil`. Errors during stage construction are captured and thrown + /// later when `execute()` is called. var errorMessage: String? { get } }