I ran into this exact issue on iOS 18.0–18.3. In my case it was triggered by how I implemented the AsyncSequence / AsyncIteratorProtocol.
I had custom iterators that only implemented the new typed-throws overload:
mutating func next(isolation actor: isolated (any Actor)?) async throws(Self.Failure) -> Self.Element?
The fix for me was to also implement the original next() overload and forward it into the newer one:
public mutating func next() async throws -> Element? {
try await next(isolation: #isolation)
}
Once I added this overload, the app ran without crashing on all affected 18.x versions, and the iterator still correctly routed calls into the newer next(isolation:) implementation.
Hope this helps someone else running into the same issue.
Topic:
App & System Services
SubTopic:
Core OS
Tags: