I think we found a reason on how this can be reproduced - we also only see this happening very often with iOS 17.4 and up.
Please boost: https://forums.developer.apple.com/forums/thread/756959
fyi @_anteloper , @charleswinston , @thomas_maht
Post
Replies
Boosts
Views
Activity
Hi @thomas_maht , I think I found the reason. Referencing my post here, please boost:
https://forums.developer.apple.com/forums/thread/756959
I filed a feedback request, alongside this post FB11993689
@Kmart @_anteloper - this happens a lot of times on production users: FB11983206
@esikmo please push this ticket: FB11505498
I observe this on iPad OS 16 (last beta before RC) and iOS 16 (RC).
@eskimo, Here is a pseudo code scenario, with logging when the extension gets called stopTunnel with a reason being .providerDisabled.
I have a OSLog instance to check how far it will execute the method. It will only print "stopTunnel because" and the "starting clean-up") and then gets exited due to uninstall I guess.
override func stopTunnel(with reason: NEProviderStopReason) async {
logger.log("Stop tunnel because: \(reason, privacy: .public)")
if case .providerDisabled = reason {
logger.log("Starting clean-up")
let result = await doPseudoCodeCleanup()
switch result {
case .success:
logger.log("clean up done")
case .failure(let error):
logger.log("Clean up failed due to error: \(error.localizedDescription, privacy: .public)")
}
logger.log("providerDisabled cleanup, done.")
}
logger.log("Stop tunnel end")
}