Load network/security extension skip the finish callback

Hi, i'm working on an endpoint security extension loader and implement several callbacks from delegate object OSSystemExtensionRequestDelegate

the callback i'm interested in is :

public func request(_ request: OSSystemExtensionRequest, didFinishWithResult result: OSSystemExtensionRequest.Result);

public func requestNeedsUserApproval(_ request: OSSystemExtensionRequest);

I've noticed that if I manually approve the extension long time after it was activated, the extension process goes up, but the callback isn't being called. The requestNeedUserApproval callback always gets called.

I see in the unified logs that when the extension goes from

activated_waiting_for_user -> activated_enabling -> activated_enabled

Than the request callback doesn't get called. But whenever the extension goes

activated_waiting_for_user -> activated_disabled

The request callback gets called. (this is counter intuitive since we expected the state activated_disabled may hint that the extension failed to be activated somehow)

Any Idea why my callback doesn't gets called if the extension gets approved long after it was activated ?

Load network/security extension skip the finish callback
 
 
Q