Summary
Xcode 26.4 (17E192) introduces stricter Swift 6 concurrency checking that causes build failures in FluidAudio 0.12.4. The AsrManager class is used from within StreamingAsrManager (an actor) via a nonisolated(unsafe) property, but the compiler now flags the await calls as sending 'asrManager' risks causing data races.
Errors
StreamingAsrManager.swift:622:38: error: sending 'asrManager' risks causing data races
StreamingAsrManager.swift:379:77: error: sending 'asrManager' risks causing data races
StreamingAsrManager.swift:258:34: error: sending 'asrManager' risks causing data races
Why 0.12.4 Specifically
FluidAudio 0.12.5+ likely fixes this but requires swift-transformers >= 1.2.0. Projects that also depend on WhisperKit are capped at FluidAudio 0.12.4 because WhisperKit pins swift-transformers to < 1.2.0 (see argmaxinc/WhisperKit#451).
A patch on the 0.12.x branch that adds Sendable conformance without bumping the swift-transformers requirement would unblock these projects.
Suggested Fix
Add @unchecked Sendable to AsrManager in Sources/FluidAudio/ASR/AsrManager.swift:
// Current
public final class AsrManager {
// Proposed
public final class AsrManager: @unchecked Sendable {
This is safe because AsrManager is only accessed from within StreamingAsrManager's actor isolation domain.
Environment
- Xcode 26.4 (17E192) — fails
- Xcode 26.3 (17C529) — succeeds
- FluidAudio 0.12.4
- macOS 26
Summary
Xcode 26.4 (17E192) introduces stricter Swift 6 concurrency checking that causes build failures in FluidAudio 0.12.4. The
AsrManagerclass is used from withinStreamingAsrManager(an actor) via anonisolated(unsafe)property, but the compiler now flags theawaitcalls assending 'asrManager' risks causing data races.Errors
Why 0.12.4 Specifically
FluidAudio 0.12.5+ likely fixes this but requires
swift-transformers >= 1.2.0. Projects that also depend on WhisperKit are capped at FluidAudio 0.12.4 because WhisperKit pinsswift-transformersto< 1.2.0(see argmaxinc/WhisperKit#451).A patch on the 0.12.x branch that adds Sendable conformance without bumping the
swift-transformersrequirement would unblock these projects.Suggested Fix
Add
@unchecked SendabletoAsrManagerinSources/FluidAudio/ASR/AsrManager.swift:This is safe because
AsrManageris only accessed from withinStreamingAsrManager's actor isolation domain.Environment