I'm attempting to install a NetworkExtension as a system extension, using the OSSystemExtensionManager.shared.submitRequest(request)
API call. I can see from console logs and systemextensionsctl
that my system extension is getting installed, but the OSSystemExtensionRequestDelegate
I attach to the request never gets a callback.
In the console logs I see:
com.apple.sx default 14:13:25.811827+0400 sysextd activateDecision found entry to replace: com.coder.Coder-Desktop.VPN, BundleVersion(CFBundleShortVersionString: "1.0", CFBundleVersion: "1")
default 14:13:25.811888+0400 sysextd initial activation decision: requestAppReplaceAction(<sysextd.Extension: 0xa94030100>)
com.apple.sx default 14:13:25.811928+0400 sysextd notifying client of activation conflict
com.apple.xpc default 14:13:25.812156+0400 Coder Desktop [0x154f2d5b0] invalidated because the current process cancelled the connection by calling xpc_connection_cancel()
com.apple.xpc default 14:13:25.813924+0400 sysextd [0xa941d4280] invalidated because the client process (pid 2599) either cancelled the connection or exited
com.apple.sx default 14:13:25.814027+0400 sysextd client connection (pid 2599) invalidated
It appears that something within my app process is cancelling the XPC connection to sysextd
, but I'm certainly not calling it from within my code. Presumably something within the OSSystemExtension*
APIs are cancelling the connection but I don't know why. It seems to be happening very quickly (within a few hundred ms) after sending the request, and before sysextd
can reply.
What could cause this connection to be canceled?