Two network extensions, sometimes only one gets started

We have a Transparent Proxy Provider, and a Packet Filter. They both get activated on app startup, and then when that's done, I call code to set the preferences to enable them.

That is basically done by having the request:didFinishWithResult: method check the identity of the request, determine whether it was activation or deactivation, and then call the appropriate function to do the preferences load/save dance.

However, from the logs, it looks like the preferences-handling code sometimes only gets called for one of them (and, strangely, almost always the packet filter).

Is this a known issue? I'd guess something about multiple calls to load/save preferences happening at the same time?

My current implementation seems to deal with this -- if I get an error during the save preferences, I use dispatch_after for 1 second, and try again.

Two network extensions, sometimes only one gets started
 
 
Q