I have an existing project that has a network data service actor.
This actor contains a list of async fetching from backend functions.
One of the function is like:
My view model calls this function and it is working fine until I set Approachable Concurrency to yes.
I find the parameter values passed into the fetchNewsList function is changed to some other values, which then caused backend errors.
I inspect the value changes, before entering the fetchNewsList:
userID: 199
pageID: 1
pageSize: 10
right after entering the fetchNewsList():
userID: 10243484928
pageID: 1565315120
pageSize: 199
From my experience, this is normally caused by ABI mismatch.
But I cleaned the build folder a few times, still got the same problem.
By observing the corrupted values, I have a feeling values are shifted by some new hidden parameters. Can it be the current executor? I don't know.
Setting the flag to No or mark the function with nonisolated fixes the problem immediately.
Another thing to mention is I have no compile error after setting the flag to Yes and my Default Actor Isolation is set to nonisolated the entire time.
My Xcode Version 26.0 beta (17A5241e) + Swift 6 + 26.0 Beta (25A5295e)
I have created a sample project and successfully reproduced this problem.
You can find this sample project attached to the Apple Feedback FB18365972.
Put a break point or just see the corrupted parameter values from the print console.
Let me know if my usage of swift concurrency is incorrect.