DNS Proxy network extension doesn't start even after saving preferences successfully

Hello, I'm having some problems starting my DNS proxy network extension.

Even after I call NEDNSProxyManager.saveToPreference() successfully I don't see any logs from my dns proxy.

This is the code from the user space app:

import SwiftUI
import NetworkExtension
func configureDNSProxy() {
let dnsProxyManager = NEDNSProxyManager.shared()
dnsProxyManager.loadFromPreferences { error in
if let error = error {
print("Error loading DNS proxy preferences: \(error)")
return
}
dnsProxyManager.localizedDescription = "my DNS proxy"
let proto = NEDNSProxyProviderProtocol()
proto.providerBundleIdentifier = "com.myteam.dns-proxy-tests.ne"
dnsProxyManager.providerProtocol = proto
// Enable the DNS proxy.
dnsProxyManager.isEnabled = true
dnsProxyManager.saveToPreferences { error in
if let error = error {
print("Error saving DNS proxy preferences: \(error)")
} else {
NSLog("DNS Proxy enabled successfully")
}
}
}
}
@main
struct dns_proxy_testsApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
init() {
configureDNSProxy()
}
}

This is the code for my network extension(DNSProxyProvider.swift):

import NetworkExtension
class DNSProxyProvider: NEDNSProxyProvider {
override func startProxy(options:[String: Any]? = nil, completionHandler: @escaping (Error?) -> Void) {
NSLog("dns proxy ne started")
completionHandler(nil)
}
override func stopProxy(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) {
NSLog("dns proxy ne stopped")
completionHandler()
}
override func sleep(completionHandler: @escaping () -> Void) {
NSLog("dns proxy ne sleep")
completionHandler()
}
override func wake() {
NSLog("dns proxy ne wake")
}
override func handleNewFlow(_ flow: NEAppProxyFlow) -> Bool {
NSLog("dns proxy ne flow")
return true
}
}

The bundle identifier for my network extension is: com.myteam.dns-proxy-tests.ne and both the user space app and the network extension have the DNS Proxy capability. Both have the same app group capability with the same group name group.com.myteam.dns-proxy-test.

The info.plist from the network extension look like this(I didn't really modify it from the default template created by xcode)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NetworkExtension</key>
<dict>
<key>NEMachServiceName</key>
<string>$(TeamIdentifierPrefix)com.example.app-group.MySystemExtension</string>
<key>NEProviderClasses</key>
<dict>
<key>com.apple.networkextension.dns-proxy</key>
<string>$(PRODUCT_MODULE_NAME).DNSProxyProvider</string>
</dict>
</dict>
</dict>
</plist>

In the logs I do see DNS Proxy enabled successfully and also I see:

NESMDNSProxySession[Primary Tunnel:my DNS proxy:<...>:(null)] starting with configuration: {
name = my DNS proxy
identifier = <..>
applicationName = dns-proxy-tests
application = com.myteam.dns-proxy-tests
grade = 1
dnsProxy = {
enabled = YES
protocol = {
type = dnsProxy
identifier = <...>
identityDataImported = NO
disconnectOnSleep = NO
disconnectOnIdle = NO
disconnectOnIdleTimeout = 0
disconnectOnWake = NO
disconnectOnWakeTimeout = 0
disconnectOnUserSwitch = NO
disconnectOnLogout = NO
includeAllNetworks = NO
excludeLocalNetworks = NO
excludeCellularServices = YES
excludeAPNs = YES
excludeDeviceCommunication = YES
enforceRoutes = NO
pluginType = com.myteam.dns-proxy-tests
providerBundleIdentifier = com.myteam.dns-proxy-tests.ne
designatedRequirement = identifier "com.myteam.dns-proxy-tests.ne" <...> /* exists */
}
}
}

But then I see:

Checking for com.myteam.dns-proxy-tests.ne - com.apple.networkextension.dns-proxy

But then finally

Found 0 registrations for com.myteam.dns-proxy-tests.ne (com.apple.networkextension.dns-proxy)

So I think that last log probably indicates the problem.

I'm a bit lost at what I'm doing wrong so I'd be super thankful for any pointer!

Answered by DTS Engineer in 831297022

I suspect that the sysextd crash is a known issue that seems to be caused by a race condition in the code (r. 99777199).

The nesessionmanager crash is more likely to be caused by the properties in your sysex. The crashing thread looks like this:

5 Foundation 0x191f5c120 -[NSString initWithFormat:] + 52
6 nesessionmanager 0x100138ac0 -[NESMProviderManager createSystemExtensionErrorWithCode:extensionInfo:] + 440
7 nesessionmanager 0x100139558 -[NESMProviderManager createLaunchdPlistEntriesFromExtensionBundle:extensionInfo:error:] + 2464
8 nesessionmanager 0x1001399d8 __84-[NESMProviderManager listener:validateExtension:atTemporaryBundleURL:replyHandler:]_block_invoke + 212

NE is trying to validate your sysex, that’s failed, and it’s crashed trying to generate the error O-:

Both of these are obviously bugs in our OS — these subsystems should fail rather than crash — and I encourage you to file bug reports about them. Include a sysdiagnose log and a copy of your built app (the broken one, not the fixed one). Please post your bug numbers, just for the record.

However, frame 7 in the NE crash suggests that you have an app group mismatch. NE wants your Mach service name to be ‘inside’ an app group. For example, in my test project I have this:

% codesign -d --entitlements - QNE2DNSProxyMac.app/Contents/Library/SystemExtensions/com.example.apple-samplecode.QNE2DNSProxyMac.SysEx.systemextension
[Dict]
[Value]
[Array]
[String] SKMME9E2Y8.com.example.apple-samplecode.QNE2DNSProxyMac
% plutil -p QNE2DNSProxyMac.app/Contents/Library/SystemExtensions/com.example.apple-samplecode.QNE2DNSProxyMac.SysEx.systemextension/Contents/Info.plist
{
"NetworkExtension" => {
"NEMachServiceName" => "SKMME9E2Y8.com.example.apple-samplecode.QNE2DNSProxyMac.service"
"NEProviderClasses" => {
"com.apple.networkextension.dns-proxy" => "com_example_apple_samplecode_QNE2DNSProxyMac_SysEx.DNSProxyProvider"
}
}
}

My app group, SKMME9E2Y8.com.example.apple-samplecode.QNE2DNSProxyMac, is a prefix of the Mach service name, SKMME9E2Y8.com.example.apple-samplecode.QNE2DNSProxyMac.service, and that’s what NE is checking for.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

I have a post, Debugging a Network Extension Provider, that explains my general advice for this.

Also, this is on the Mac, right?

TN3134 makes it clear that DNS proxies must be packaged as a system extension on the Mac. However, you don’t mention activating your sysex. Are you doing that?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Also, this is on the Mac, right?

Yes, forgot to mention, MacOS Sonoma 14.7

TN3134 makes it clear that DNS proxies must be packaged as a system extension on the Mac. However, you don’t mention activating your sysex. Are you doing that?

I followed the instructions here to set Allow user management of kernel extensions from identified developers in my mac, also disabled SIP just in case and ran successfully sudo systemextensionsctl developer on without luck.

I never saw the alert for allowing the system extension in the Security section of Privacy & Security.

I have a post, Debugging a Network Extension Provider, that explains my general advice for this.

Followed the instructions here to set the "First Light" log, which I never see in the console log, I still see the log:

Found 0 registrations for com.myteam.dns-proxy-tests.ne (com.apple.networkextension.dns-proxy)

And made sure to follow the instructions for XCode to copy and run the application package from the Applications directory.

Written by conectado in 829606022
I followed the instructions here …

I recommend that you not do that. Disabling SIP is a bad idea in general, and it’s unnecessary here.

After you activate your sysex by passing an activation request to the submitRequest(_:) method, do you see the request(_:didFinishWithResult:) delegate get called? If so, what was the result?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

After you activate your sysex by passing an activation request to the submitRequest(:) method, do you see the request(:didFinishWithResult:) delegate get called? If so, what was the result?

I have:

func activate() {
let request = OSSystemExtensionRequest.activationRequest(forExtensionWithIdentifier: "com.bowtie.dns-proxy-tests.ne",
queue: DispatchQueue.main)
request.delegate = self
let extensionManager = OSSystemExtensionManager.shared
print("Submitting request to activate system extension...")
extensionManager.submitRequest(request)
}

I do see "Submitting request to activate system extension..." but after that I don't see any of the delegate being called if I kill and start the application again, but if I run it again by "replacing"(in xcode) the already running one I see the error delegate being called:

Request failed with error: The operation couldn’t be completed. (OSSystemExtensionErrorDomain error 1.)

But that only happens when I run it again when it's already running otherwise none of the delegates are called

Error 1 in the OSSystemExtensionErrorDomain is OSSystemExtensionErrorUnknown. That doesn’t sound good.

Written by conectado in 829698022
after that I don't see any of the delegate being called

And that’s also not good.

System Extensions framework is meant to be called from a GUI application. Is that the case here? I see a lot of folks try to use the framework from a command-line tool (or daemon or whatever) that’s pretending to be a GUI app, and that often ends badly.

Check that you’re container app has a reasonable structure and that the sysex is embedded within that:

QNE2DNSProxyMac.app/
Contents/
Info.plist
Library/
SystemExtensions/
com.example.apple-samplecode.QNE2DNSProxyMac.SysEx.systemextension/
Contents/
Info.plist
MacOS/
com.example.apple-samplecode.QNE2DNSProxyMac.SysEx
_CodeSignature/
CodeResources
embedded.provisionprofile
MacOS/
QNE2DNSProxyMac
_CodeSignature/
CodeResources
embedded.provisionprofile

Check that the app is signed with at least the following entitlements:

shell% codesign -d --ent - QNE2DNSProxyMac.app
[Dict]
[Key] com.apple.application-identifier
[Value]
[String] SKMME9E2Y8.com.example.apple-samplecode.QNE2DNSProxyMac
[Key] com.apple.developer.networking.networkextension
[Value]
[Array]
[String] dns-proxy
[Key] com.apple.developer.system-extension.install
[Value]
[Bool] true
[Key] com.apple.developer.team-identifier
[Value]
[String] SKMME9E2Y8

And similarly for the sysex:

% codesign -d --ent - QNE2DNSProxyMac.app/Contents/Library/SystemExtensions/com.example.apple-samplecode.QNE2DNSProxyMac.SysEx.systemextension
[Dict]
[Key] com.apple.application-identifier
[Value]
[String] SKMME9E2Y8.com.example.apple-samplecode.QNE2DNSProxyMac.SysEx
[Key] com.apple.developer.networking.networkextension
[Value]
[Array]
[String] dns-proxy
[Key] com.apple.developer.team-identifier
[Value]
[String] SKMME9E2Y8
[Key] com.apple.security.app-sandbox
[Value]
[Bool] true

And those are all restricted entitlements (except for com.apple.security.app-sandbox) and thus need to be authorised by the corresponding provisioning profile. TN3125 Inside Code Signing: Provisioning Profiles explains how to check those.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

System Extensions framework is meant to be called from a GUI application. Is that the case here? I see a lot of folks try to use the framework from a command-line tool (or daemon or whatever) that’s pretending to be a GUI app, and that often ends badly.

I'm using a gui container app, it's just the default App macos template from xcode with the init for the App class changed to start the system extension.

Check that you’re container app has a reasonable structure and that the sysex is embedded within that:

Seems almost identical:

 tree Applications/dns-proxy-tests.app
Applications/dns-proxy-tests.app
└── Contents
├── Info.plist
├── Library
│   └── SystemExtensions
│   └── com.myteam.dns-proxy-tests.ne.systemextension
│   └── Contents
│   ├── Info.plist
│   ├── MacOS
│   │   └── com.myteam.dns-proxy-tests.ne
│   ├── _CodeSignature
│   │   └── CodeResources
│   └── embedded.provisionprofile
├── MacOS
│   ├── __preview.dylib
│   ├── dns-proxy-tests
│   └── dns-proxy-tests.debug.dylib
├── PkgInfo
├── Resources
├── _CodeSignature
│   └── CodeResources
└── embedded.provisionprofile

Check that the app is signed with at least the following entitlements:

Seems to have them

Executable=/Applications/dns-proxy-tests.app/Contents/MacOS/dns-proxy-tests
[Dict]
[Key] com.apple.application-identifier
[Value]
[String] <...>.com.myteam.dns-proxy-tests
[Key] com.apple.developer.networking.networkextension
[Value]
[Array]
[String] dns-proxy
[Key] com.apple.developer.system-extension.install
[Value]
[Bool] true
[Key] com.apple.developer.team-identifier
[Value]
[String] <...>
[Key] com.apple.security.app-sandbox
[Value]
[Bool] true
[Key] com.apple.security.application-groups
[Value]
[Array]
[String] group.com.myteam.dns-proxy-test
[Key] com.apple.security.files.user-selected.read-only
[Value]
[Bool] true
[Key] com.apple.security.get-task-allow
[Value]
[Bool] true

Same for sysex

 codesign -d --ent - Applications/dns-proxy-tests.app/Contents/Library/SystemExtensions/com.myteam.dns-proxy-tests.ne.systemextension
Executable=/Applications/dns-proxy-tests.app/Contents/Library/SystemExtensions/com.myteam.dns-proxy-tests.ne.systemextension/Contents/MacOS/com.myteam.dns-proxy-tests.ne
[Dict]
[Key] com.apple.application-identifier
[Value]
[String] <...>.com.myteam.dns-proxy-tests.ne
[Key] com.apple.developer.networking.networkextension
[Value]
[Array]
[String] dns-proxy
[Key] com.apple.developer.team-identifier
[Value]
[String] <...>
[Key] com.apple.security.app-sandbox
[Value]
[Bool] true
[Key] com.apple.security.application-groups
[Value]
[Array]
[String] group.com.myteam.dns-proxy-test
[Key] com.apple.security.get-task-allow
[Value]
[Bool] true
Written by conectado in 830093022
it's just the default App macos template from xcode with the init for the App class changed to start the system extension.

OK. So in a SwiftUI app the type that conforms to App isn’t a class, it’s a struct. But the OSSystemExtensionRequest delegate must be an object. That suggests you’ve created some sort of manager object for this process.

I’ve seen problems like this where the app wasn’t doing anything to hold the delegate in memory, and thus it got released while the request was still in flight (OSSystemExtensionRequest itself only maintains a weak reference). Are you sure that’s not happening here?

One good way to investigate this is to add a deinitialiser to your delegate and then print something from that.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

OK. So in a SwiftUI app the type that conforms to App isn’t a class, it’s a struct. But the OSSystemExtensionRequest delegate must be an object. That suggests you’ve created some sort of manager object for this process.

I’ve seen problems like this where the app wasn’t doing anything to hold the delegate in memory, and thus it got released while the request was still in flight (OSSystemExtensionRequest itself only maintains a weak reference). Are you sure that’s not happening here?

I'm using a static variable in the App class trying to prevent that from happening:

@main
struct dns_proxy_testsApp: App {
static let systemExtensionManager = SystemExtensionManager()
var body: some Scene {
WindowGroup {
ContentView()
}
}
init() {
Self.systemExtensionManager.activate()
configureDNSProxy()
}
}

I also added the deinit to investigate, and it's never called.

This is the full class implementation of the delegate

class SystemExtensionManager: NSObject, OSSystemExtensionRequestDelegate {
func activate() {
let request = OSSystemExtensionRequest.activationRequest(forExtensionWithIdentifier: "com.myteam.dns-proxy-tests.ne",
queue: DispatchQueue.main)
request.delegate = self
let extensionManager = OSSystemExtensionManager.shared
print("Submitting request to activate system extension...")
extensionManager.submitRequest(request)
}
func request(_ request: OSSystemExtensionRequest, actionForReplacingExtension existing: OSSystemExtensionProperties, withExtension ext: OSSystemExtensionProperties) -> OSSystemExtensionRequest.ReplacementAction {
print("Replacing extension: \(existing.bundleIdentifier) with \(ext.bundleIdentifier)")
return .replace
}
func requestNeedsUserApproval(_ request: OSSystemExtensionRequest) {
print("Request \(request) needs user approval.")
}
func request(_ request: OSSystemExtensionRequest, didFinishWithResult result: OSSystemExtensionRequest.Result) {
print("Request finished with result: \(result)")
}
func request(_ request: OSSystemExtensionRequest, didFailWithError error: any Error) {
print("Request failed with error: \(error.localizedDescription)")
}
deinit {
print("Deinitializing SystemExtensionManager")
}
}

I also tried defining it as a global variable instead of static but I don't see any change.

One more data point is that now I see:

 systemextensionsctl list
1 extension(s)
--- com.apple.system_extension.network_extension
enabled active teamID bundleID (version) name [state]
<...> com.myteam.dns-proxy-tests.ne (1.0/1) - [validating by category]

OK, that validating by category warrants some explanation.

macOS supports multiple types of system extensions, including Network Extension providers, Endpoint Security clients, and DriverKit drivers. Internally these are known as categories. When you attempt to load a sysex, the system runs a bunch of common checks and then runs various category-specific checks. If an NE provider sysex is stuck in validating by category then something has gone wrong on the NE side of things.

As to what that is, it’s hard to say. If you monitor the logging done by sysextd when you try to activate your sysex, what do you see? Specifically, log for log entries with a subsystem of com.apple.sx.

If you’re not familiar with the ins and outs of the system log, check out Your Friend the System Log.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

As to what that is, it’s hard to say. If you monitor the logging done by sysextd when you try to activate your sysex, what do you see? Specifically, log for log entries with a subsystem of com.apple.sx.

Regardless of whether I'm trying to install my system extension I see periodically, every ~30s/1min

default 18:05:02.264132-0300 sysextd connection to com.apple.nesessionmanager.system-extensions interrupted
default 18:05:02.264318-0300 sysextd connection to com.apple.nesessionmanager.system-extensions interrupted
default 18:05:02.309334-0300 sysextd dispatchRequest(cmd: list)

But this is a full log capture when trying to install the system extension:

default 18:05:02.015902-0300 sysextd dispatchRequest(cmd: nsxpc)
default 18:05:02.194894-0300 sysextd client activation request for com.myteam.dns-proxy-tests.ne
default 18:05:02.215024-0300 sysextd extension <...> com.myteam.dns-proxy-tests.ne (1.0/1) advancing state from realizing to staging
default 18:05:02.216109-0300 sysextd Importing content from application to staging area
originPath: /Applications/dns-proxy-tests.app/Contents/Library/SystemExtensions/com.myteam.dns-proxy-tests.ne.systemextension,
uniqueIdentifier: 5A113AA1-2BD0-4275-8AFB-B0704280958F
default 18:05:02.216144-0300 sysextd Container path: /Library/SystemExtensions/.staging/5A113AA1-2BD0-4275-8AFB-B0704280958F
default 18:05:02.216240-0300 sysextd Bundle path: /Library/SystemExtensions/.staging/5A113AA1-2BD0-4275-8AFB-B0704280958F/com.myteam.dns-proxy-tests.ne.systemextension
default 18:05:02.216445-0300 sysextd Making directory for container
default 18:05:02.216717-0300 sysextd Importing bundle from origin into container
default 18:05:02.217789-0300 sysextd Copied and processing: /Library/SystemExtensions/.staging/5A113AA1-2BD0-4275-8AFB-B0704280958F/com.myteam.dns-proxy-tests.ne.systemextension/Contents/_CodeSignature/CodeResources
default 18:05:02.217885-0300 sysextd Imported: /Library/SystemExtensions/.staging/5A113AA1-2BD0-4275-8AFB-B0704280958F/com.myteam.dns-proxy-tests.ne.systemextension/Contents/_CodeSignature/CodeResources
default 18:05:02.218183-0300 sysextd Copied and processing: /Library/SystemExtensions/.staging/5A113AA1-2BD0-4275-8AFB-B0704280958F/com.myteam.dns-proxy-tests.ne.systemextension/Contents/_CodeSignature
default 18:05:02.218267-0300 sysextd Imported: /Library/SystemExtensions/.staging/5A113AA1-2BD0-4275-8AFB-B0704280958F/com.myteam.dns-proxy-tests.ne.systemextension/Contents/_CodeSignature
default 18:05:02.218858-0300 sysextd Copied and processing: /Library/SystemExtensions/.staging/5A113AA1-2BD0-4275-8AFB-B0704280958F/com.myteam.dns-proxy-tests.ne.systemextension/Contents/MacOS/com.myteam.dns-proxy-tests.ne
default 18:05:02.218890-0300 sysextd Changing permissions to: 0o100644
default 18:05:02.218982-0300 sysextd Imported: /Library/SystemExtensions/.staging/5A113AA1-2BD0-4275-8AFB-B0704280958F/com.myteam.dns-proxy-tests.ne.systemextension/Contents/MacOS/com.myteam.dns-proxy-tests.ne
default 18:05:02.219276-0300 sysextd Copied and processing: /Library/SystemExtensions/.staging/5A113AA1-2BD0-4275-8AFB-B0704280958F/com.myteam.dns-proxy-tests.ne.systemextension/Contents/MacOS
default 18:05:02.219353-0300 sysextd Imported: /Library/SystemExtensions/.staging/5A113AA1-2BD0-4275-8AFB-B0704280958F/com.myteam.dns-proxy-tests.ne.systemextension/Contents/MacOS
default 18:05:02.219665-0300 sysextd Copied and processing: /Library/SystemExtensions/.staging/5A113AA1-2BD0-4275-8AFB-B0704280958F/com.myteam.dns-proxy-tests.ne.systemextension/Contents/embedded.provisionprofile
default 18:05:02.219708-0300 sysextd Imported: /Library/SystemExtensions/.staging/5A113AA1-2BD0-4275-8AFB-B0704280958F/com.myteam.dns-proxy-tests.ne.systemextension/Contents/embedded.provisionprofile
default 18:05:02.219887-0300 sysextd Copied and processing: /Library/SystemExtensions/.staging/5A113AA1-2BD0-4275-8AFB-B0704280958F/com.myteam.dns-proxy-tests.ne.systemextension/Contents/Info.plist
default 18:05:02.219927-0300 sysextd Imported: /Library/SystemExtensions/.staging/5A113AA1-2BD0-4275-8AFB-B0704280958F/com.myteam.dns-proxy-tests.ne.systemextension/Contents/Info.plist
default 18:05:02.220057-0300 sysextd Copied and processing: /Library/SystemExtensions/.staging/5A113AA1-2BD0-4275-8AFB-B0704280958F/com.myteam.dns-proxy-tests.ne.systemextension/Contents
default 18:05:02.220091-0300 sysextd Imported: /Library/SystemExtensions/.staging/5A113AA1-2BD0-4275-8AFB-B0704280958F/com.myteam.dns-proxy-tests.ne.systemextension/Contents
default 18:05:02.220201-0300 sysextd Copied and processing: /Library/SystemExtensions/.staging/5A113AA1-2BD0-4275-8AFB-B0704280958F/com.myteam.dns-proxy-tests.ne.systemextension
default 18:05:02.220237-0300 sysextd Imported: /Library/SystemExtensions/.staging/5A113AA1-2BD0-4275-8AFB-B0704280958F/com.myteam.dns-proxy-tests.ne.systemextension
default 18:05:02.220264-0300 sysextd extension <...> com.myteam.dns-proxy-tests.ne (1.0/1) advancing state from staging to validating
default 18:05:02.225301-0300 sysextd validating <private>
default 18:05:02.248883-0300 sysextd extension <...> com.myteam.dns-proxy-tests.ne (1.0/1) advancing state from validating to validating_by_category
default 18:05:02.250022-0300 sysextd validate: category: com.apple.system_extension.network_extension, extension: com.myteam.dns-proxy-tests.ne
default 18:05:02.264132-0300 sysextd connection to com.apple.nesessionmanager.system-extensions interrupted
default 18:05:02.264318-0300 sysextd connection to com.apple.nesessionmanager.system-extensions interrupted
default 18:05:02.309334-0300 sysextd dispatchRequest(cmd: list)
default 18:05:02.329559-0300 sysextd connection to com.apple.nesessionmanager.system-extensions interrupted
default 18:05:02.329750-0300 sysextd connection to com.apple.nesessionmanager.system-extensions interrupted
default 18:05:09.074187-0300 sysextd dispatchRequest(cmd: list)
default 18:05:12.396544-0300 sysextd dispatchRequest(cmd: list)
default 18:05:12.421911-0300 sysextd connection to com.apple.nesessionmanager.system-extensions interrupted
default 18:05:12.422239-0300 sysextd connection to com.apple.nesessionmanager.system-extensions interrupted
default 18:06:12.966849-0300 sysextd dispatchRequest(cmd: list)
default 18:06:13.001513-0300 sysextd connection to com.apple.nesessionmanager.system-extensions interrupted
default 18:06:13.001811-0300 sysextd connection to com.apple.nesessionmanager.system-extensions interrupted
default 18:06:13.437459-0300 sysextd client connection (pid 68309) invalidated

The only thing that stand out for me is:

default 18:05:02.248883-0300 sysextd extension <...> com.myteam.dns-proxy-tests.ne (1.0/1) advancing state from validating to validating_by_category
default 18:05:02.250022-0300 sysextd validate: category: com.apple.system_extension.network_extension, extension: com.myteam.dns-proxy-tests.ne

But IDK if that has any more info that the validating by category that we already saw.

Those connection to com.apple.nesessionmanager.system-extensions interrupted errors potentially interesting. The category-specific checks I mentioned earlier are not done in the sysextd process, but rather a category-specific process. Those messages indicate that the XPC connection to that the NE process is failing. It’s common to see that being caused by the process crashing.

Do you see any NE-related crash reports?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Interestingly, when I get the error delegate:

Submitting request to activate system extension...
Request failed with error: The operation couldn’t be completed. (OSSystemExtensionErrorDomain error 1.)

I do see a correlated crash from sysextd

Process: sysextd [88810]
Path: /System/Library/Frameworks/SystemExtensions.framework/Versions/A/Helpers/sysextd
Identifier: sysextd
Version: ???
Code Type: ARM-64 (Native)
Parent Process: launchd [1]
User ID: 0
Date/Time: 2025-03-25 20:41:37.0472 -0300
OS Version: macOS 14.7 (23H124)
Report Version: 12
Anonymous UUID: 603FADAE-E494-E147-DCDB-B19084A67DC1
Sleep/Wake UUID: E39090CA-174C-4227-8E0F-10F5584128BB
Time Awake Since Boot: 80000 seconds
Time Since Wake: 284 seconds
System Integrity Protection: enabled
Crashed Thread: 2 Dispatch queue: sysextd.extension_manager
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x0000000104c789e4
Termination Reason: Namespace SIGNAL, Code 5 Trace/BPT trap: 5
Terminating Process: exc handler [88810]

And while I can't trigger the crash, I see a bunch of nesessionmanager crashes from yesterday.

-------------------------------------
Translated Report (Full Report Below)
-------------------------------------
Process: nesessionmanager [76320]
Path: /usr/libexec/nesessionmanager
Identifier: nesessionmanager
Version: ???
Code Type: ARM-64 (Native)
Parent Process: launchd [1]
User ID: 0
Date/Time: 2025-03-24 23:46:30.0376 -0300
OS Version: macOS 14.7 (23H124)
Report Version: 12
Anonymous UUID: 603FADAE-E494-E147-DCDB-B19084A67DC1
Sleep/Wake UUID: 9C34E4FD-CF1D-4E4F-93B8-4BEFC9D11D41
Time Awake Since Boot: 56000 seconds
Time Since Wake: 9789 seconds
System Integrity Protection: enabled
Crashed Thread: 1 Dispatch queue: NESMProviderManager queue
Exception Type: EXC_BAD_ACCESS (SIGKILL)
Exception Codes: UNKNOWN_0x105 at 0x00000000dac11a30
Exception Codes: 0x0000000000000105, 0x00000000dac11a30
Termination Reason: Namespace PAC_EXCEPTION, Code 261

Attached the full crashes in case it's useful

{"app_name":"sysextd","timestamp":"2025-03-25 20:41:37.00 -0300","app_version":"","slice_uuid":"601d1ab0-aee1-3cec-ab78-c100324efee6","build_version":"","platform":1,"share_with_app_devs":0,"is_first_party":1,"bug_type":"309","os_version":"macOS 14.7 (23H124)","roots_installed":0,"incident_id":"F09A18F0-0F67-49B2-9E30-B88A243C2757","name":"sysextd"}
{
  "uptime" : 80000,
  "procRole" : "Unspecified",
  "version" : 2,
  "userID" : 0,
  "deployVersion" : 210,
  "modelCode" : "Mac14,2",
  "coalitionID" : 451,
  "osVersion" : {
    "train" : "macOS 14.7",
    "build" : "23H124",
    "releaseType" : "User"
  },
  "captureTime" : "2025-03-25 20:41:37.0472 -0300",
  "codeSigningMonitor" : 1,
  "incident" : "F09A18F0-0F67-49B2-9E30-B88A243C2757",
  "pid" : 88810,
  "translated" : false,
  "cpuType" : "ARM-64",
  "roots_installed" : 0,
  "bug_type" : "309",
  "procLaunch" : "2025-03-25 20:40:53.9453 -0300",
  "procStartAbsTime" : 1933197627096,
  "procExitAbsTime" : 1934232065989,
  "procName" : "sysextd",
  "procPath" : "\/System\/Library\/Frameworks\/SystemExtensions.framework\/Versions\/A\/Helpers\/sysextd",
  "parentProc" : "launchd",
  "parentPid" : 1,
  "coalitionName" : "com.apple.sysextd",
  "crashReporterKey" : "603FADAE-E494-E147-DCDB-B19084A67DC1",
  "consecutiveCrashCount" : 3,
  "throttleTimeout" : 10,
  "codeSigningID" : "com.apple.sysextd",
  "codeSigningTeamID" : "",
  "codeSigningFlags" : 570522385,
  "codeSigningValidationCategory" : 1,
  "codeSigningTrustLevel" : 4294967295,
  "instructionByteStream" : {"beforePC":"9E9EqfZXQ6n4X0Kp+mdBqfxvxqj\/D1\/WYR82EB8gA9XgAxiqNAwAlA==","atPC":"IAAg1H8jA9X2V72p9E8Bqf17Aqn9gwCR8wMDqvQDAKqCAQA2aQ5A+Q=="},
  "wakeTime" : 284,
  "sleepWakeUUID" : "E39090CA-174C-4227-8E0F-10F5584128BB",
  "sip" : "enabled",
  "exception" : {"codes":"0x0000000000000001, 0x0000000104c789e4","rawCodes":[1,4375153124],"type":"EXC_BREAKPOINT","signal":"SIGTRAP"},
  "termination" : {"flags":0,"code":5,"namespace":"SIGNAL","indicator":"Trace\/BPT trap: 5","byProc":"exc handler","byPid":88810},
  "os_fault" : {"process":"sysextd"},
  "extMods" : {"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"system":{"thread_create":0,"thread_set_state":264,"task_for_pid":14},"targeted":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},
  "faultingThread" : 2,
  "threads" : [{"id":1224106,"frames":[{"imageOffset":34084,"symbol":"__sigsuspend_nocancel","symbolLocation":8,"imageIndex":2},{"imageOffset":95636,"symbol":"_dispatch_sigsuspend","symbolLocation":48,"imageIndex":3},{"imageOffset":95588,"symbol":"_dispatch_sig_thread","symbolLocation":60,"imageIndex":3}],"threadState":{"x":[{"value":4},{"value":0},{"value":0},{"value":6093320128},{"value":6093320256},{"value":419432703},{"value":0},{"value":0},{"value":6093320128},{"value":6093320128},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":410},{"value":8551114624},{"value":0},{"value":6723489568,"symbolLocation":0,"symbol":"_dispatch_sigsuspend.mask"},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6723323284},"cpsr":{"value":536875008},"fp":{"value":6093320096},"sp":{"value":6093320080},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6724781348},"far":{"value":0}}},{"id":1224381,"frames":[{"imageOffset":7456,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":5}],"threadState":{"x":[{"value":6093893632},{"value":6155},{"value":6093357056},{"value":0},{"value":409604},{"value":18446744073709551615},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":0},"cpsr":{"value":4096},"fp":{"value":0},"sp":{"value":6093893632},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6724996384},"far":{"value":0}}},{"triggered":true,"id":1225025,"threadState":{"x":[{"value":6092741552},{"value":1},{"value":8496090904,"symbolLocation":0,"symbol":"type metadata for URL"},{"value":6092741560},{"value":0},{"value":0},{"value":0},{"value":1},{"value":0},{"value":0},{"value":6419740535703416700},{"value":15},{"value":3},{"value":5588970112},{"value":218283852907351137,"symbolLocation":218283844439113729,"symbol":"OBJC_CLASS_$_NSXPCInterface"},{"value":8468237408,"symbolLocation":0,"symbol":"OBJC_CLASS_$_NSXPCInterface"},{"value":8501257344,"symbolLocation":48,"symbol":"value witness table for Builtin.UnknownObject"},{"value":6985083030552896640},{"value":0},{"value":5586844048},{"value":5586844048},{"value":8496090904,"symbolLocation":0,"symbol":"type metadata for URL"},{"value":6092741536},{"value":8501257296,"symbolLocation":0,"symbol":"value witness table for Builtin.UnknownObject"},{"value":6092741552},{"value":8468844544,"symbolLocation":52752,"symbol":"InitialAllocationPool"},{"value":8474890536,"symbolLocation":0,"symbol":"swift_isaMask"},{"value":5837488448},{"value":4611686024014231952}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6126443609970936292},"cpsr":{"value":1610616832},"fp":{"value":6092741680},"sp":{"value":6092741536},"esr":{"value":4060086273,"description":"(Breakpoint) brk 1"},"pc":{"value":4375153124,"matchesCrashFrame":1},"far":{"value":0}},"queue":"sysextd.extension_manager","frames":[{"imageOffset":461284,"imageIndex":1},{"imageOffset":296520,"imageIndex":1},{"imageOffset":297024,"imageIndex":1},{"imageOffset":113780,"imageIndex":1},{"imageOffset":286128,"imageIndex":1},{"imageOffset":293184,"imageIndex":1},{"imageOffset":707652,"symbol":"__NSXPCCONNECTION_IS_CALLING_OUT_TO_EXPORTED_OBJECT_S1__","symbolLocation":16,"imageIndex":6},{"imageOffset":8904348,"symbol":"-[NSXPCConnection _decodeAndInvokeMessageWithEvent:reply:flags:]","symbolLocation":1636,"imageIndex":6},{"imageOffset":8910056,"symbol":"message_handler_message","symbolLocation":88,"imageIndex":6},{"imageOffset":129204,"symbol":"message_handler","symbolLocation":152,"imageIndex":6},{"imageOffset":61300,"symbol":"_xpc_connection_call_event_handler","symbolLocation":144,"imageIndex":7},{"imageOffset":55016,"symbol":"_xpc_connection_mach_event","symbolLocation":1404,"imageIndex":7},{"imageOffset":17576,"symbol":"_dispatch_client_callout4","symbolLocation":20,"imageIndex":3},{"imageOffset":133256,"symbol":"_dispatch_mach_msg_invoke","symbolLocation":468,"imageIndex":3},{"imageOffset":47256,"symbol":"_dispatch_lane_serial_drain","symbolLocation":368,"imageIndex":3},{"imageOffset":136664,"symbol":"_dispatch_mach_invoke","symbolLocation":444,"imageIndex":3},{"imageOffset":47256,"symbol":"_dispatch_lane_serial_drain","symbolLocation":368,"imageIndex":3},{"imageOffset":50500,"symbol":"_dispatch_lane_invoke","symbolLocation":380,"imageIndex":3},{"imageOffset":94928,"symbol":"_dispatch_root_queue_drain_deferred_wlh","symbolLocation":288,"imageIndex":3},{"imageOffset":92996,"symbol":"_dispatch_workloop_worker_thread","symbolLocation":404,"imageIndex":3},{"imageOffset":12300,"symbol":"_pthread_wqthread","symbolLocation":288,"imageIndex":5},{"imageOffset":7464,"symbol":"start_wqthread","symbolLocation":8,"imageIndex":5}]}],
  "usedImages" : [
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 4377542656,
    "CFBundleShortVersionString" : "3.0",
    "CFBundleIdentifier" : "com.apple.security.csparser",
    "size" : 131072,
    "uuid" : "04123326-63a9-3ed4-ab3e-fac01f40a01f",
    "path" : "\/System\/Library\/Frameworks\/Security.framework\/Versions\/A\/PlugIns\/csparser.bundle\/Contents\/MacOS\/csparser",
    "name" : "csparser",
    "CFBundleVersion" : "61123.141.1"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 4374691840,
    "size" : 835584,
    "uuid" : "601d1ab0-aee1-3cec-ab78-c100324efee6",
    "path" : "\/System\/Library\/Frameworks\/SystemExtensions.framework\/Versions\/A\/Helpers\/sysextd",
    "name" : "sysextd"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6724747264,
    "size" : 241644,
    "uuid" : "806c8405-e7d9-3b01-a3e3-a94a39c34e1a",
    "path" : "\/usr\/lib\/system\/libsystem_kernel.dylib",
    "name" : "libsystem_kernel.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6723227648,
    "size" : 294912,
    "uuid" : "f8460dbc-fe3f-3afb-8ec3-d660994edda1",
    "path" : "\/usr\/lib\/system\/libdispatch.dylib",
    "name" : "libdispatch.dylib"
  },
  {
    "size" : 0,
    "source" : "A",
    "base" : 0,
    "uuid" : "00000000-0000-0000-0000-000000000000"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6724988928,
    "size" : 53248,
    "uuid" : "57cf0002-c127-3580-a0b7-fd447cc0f745",
    "path" : "\/usr\/lib\/system\/libsystem_pthread.dylib",
    "name" : "libsystem_pthread.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6743588864,
    "CFBundleShortVersionString" : "6.9",
    "CFBundleIdentifier" : "com.apple.Foundation",
    "size" : 12967936,
    "uuid" : "4588b815-e39a-332e-8901-ae46a7b92a65",
    "path" : "\/System\/Library\/Frameworks\/Foundation.framework\/Versions\/C\/Foundation",
    "name" : "Foundation",
    "CFBundleVersion" : "2602"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6721863680,
    "size" : 307200,
    "uuid" : "48adda14-8e9d-3180-88f5-0cf988b12386",
    "path" : "\/usr\/lib\/system\/libxpc.dylib",
    "name" : "libxpc.dylib"
  }
],
  "sharedCache" : {
  "base" : 6720520192,
  "size" : 4214374400,
  "uuid" : "44103be1-5112-3ccc-9d8b-2519cd424afb"
},
  "vmSummary" : "ReadOnly portion of Libraries: Total=650.0M resident=0K(0%) swapped_out_or_unallocated=650.0M(100%)\nWritable regions: Total=266.0M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=266.0M(100%)\n\n                                VIRTUAL   REGION \nREGION TYPE                        SIZE    COUNT (non-coalesced) \n===========                     =======  ======= \nActivity Tracing                   256K        1 \nDispatch continuations            64.0M        1 \nKernel Alloc Once                   32K        1 \nMALLOC                           200.1M       23 \nMALLOC guard page                   96K        6 \nSTACK GUARD                         48K        3 \nStack                             1664K        4 \nStack Guard                       64.0M        2 \nVM_ALLOCATE                         16K        1 \n__AUTH                             346K       70 \n__AUTH_CONST                      4126K      156 \n__DATA                            1870K      150 \n__DATA_CONST                      4299K      159 \n__DATA_DIRTY                       366K       62 \n__LINKEDIT                       525.4M        3 \n__OBJC_RO                         71.9M        1 \n__OBJC_RW                         2200K        1 \n__TEXT                           124.7M      166 \ndyld private memory                272K        1 \nmapped file                       31.5M        5 \nshared memory                      608K        5 \n===========                     =======  ======= \nTOTAL                              1.1G      821 \n",
  "legacyInfo" : {
  "threadTriggered" : {
    "queue" : "sysextd.extension_manager"
  }
},
  "logWritingSignature" : "2dc58e74641546948f7df17d46c37362d4a2f444"
}

{"app_name":"nesessionmanager","timestamp":"2025-03-24 23:46:30.00 -0300","app_version":"","slice_uuid":"84b39127-9fb2-315b-8e93-02c0cc56ca3a","build_version":"","platform":1,"share_with_app_devs":0,"is_first_party":1,"bug_type":"309","os_version":"macOS 14.7 (23H124)","roots_installed":0,"incident_id":"E1E4025D-9529-4D11-9286-4B2A1917E07F","name":"nesessionmanager"}
{
  "uptime" : 56000,
  "procRole" : "Unspecified",
  "version" : 2,
  "userID" : 0,
  "deployVersion" : 210,
  "modelCode" : "Mac14,2",
  "coalitionID" : 465,
  "osVersion" : {
    "train" : "macOS 14.7",
    "build" : "23H124",
    "releaseType" : "User"
  },
  "captureTime" : "2025-03-24 23:46:30.0376 -0300",
  "codeSigningMonitor" : 1,
  "incident" : "E1E4025D-9529-4D11-9286-4B2A1917E07F",
  "pid" : 76320,
  "translated" : false,
  "cpuType" : "ARM-64",
  "roots_installed" : 0,
  "bug_type" : "309",
  "procLaunch" : "2025-03-24 23:46:29.9574 -0300",
  "procStartAbsTime" : 1351924903521,
  "procExitAbsTime" : 1351926795045,
  "procName" : "nesessionmanager",
  "procPath" : "\/usr\/libexec\/nesessionmanager",
  "parentProc" : "launchd",
  "parentPid" : 1,
  "coalitionName" : "com.apple.nesessionmanager",
  "crashReporterKey" : "603FADAE-E494-E147-DCDB-B19084A67DC1",
  "consecutiveCrashCount" : 11,
  "throttleTimeout" : 20,
  "codeSigningID" : "com.apple.nesessionmanager",
  "codeSigningTeamID" : "",
  "codeSigningFlags" : 570522385,
  "codeSigningValidationCategory" : 1,
  "codeSigningTrustLevel" : 4294967295,
  "instructionByteStream" : {"beforePC":"AX0Tkb0q\/5fy\/\/8XQAIAtOIDAaogAvi3CABA+RDNfZLxAwCqMVzt8g==","atPC":"MBrB2vEDEKrxR8HaHwIR60AAAFRAjjjUCD7AeYgE+DbhAwKq4gMQqg=="},
  "wakeTime" : 9789,
  "sleepWakeUUID" : "9C34E4FD-CF1D-4E4F-93B8-4BEFC9D11D41",
  "sip" : "enabled",
  "vmRegionInfo" : "0xdac11a30 is not in any region.  Bytes before following region: 626107856\n      REGION TYPE                    START - END         [ VSIZE] PRT\/MAX SHRMOD  REGION DETAIL\n      UNUSED SPACE AT START\n--->  \n      __TEXT                      10012c000-1001f0000    [  784K] r-x\/r-x SM=COW  \/usr\/libexec\/nesessionmanager",
  "exception" : {"codes":"0x0000000000000105, 0x00000000dac11a30","rawCodes":[261,3670088240],"type":"EXC_BAD_ACCESS","signal":"SIGKILL","subtype":"UNKNOWN_0x105 at 0x00000000dac11a30"},
  "termination" : {"namespace":"PAC_EXCEPTION","flags":2,"code":261},
  "vmregioninfo" : "0xdac11a30 is not in any region.  Bytes before following region: 626107856\n      REGION TYPE                    START - END         [ VSIZE] PRT\/MAX SHRMOD  REGION DETAIL\n      UNUSED SPACE AT START\n--->  \n      __TEXT                      10012c000-1001f0000    [  784K] r-x\/r-x SM=COW  \/usr\/libexec\/nesessionmanager",
  "extMods" : {"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"system":{"thread_create":0,"thread_set_state":110,"task_for_pid":7},"targeted":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},
  "faultingThread" : 1,
  "threads" : [{"id":917671,"threadState":{"x":[{"value":268451845},{"value":21592279046},{"value":8589934592},{"value":135252815118336},{"value":0},{"value":135252815118336},{"value":2},{"value":4294967295},{"value":18446744073709550527},{"value":31491},{"value":0},{"value":1},{"value":31491},{"value":154127},{"value":0},{"value":0},{"value":18446744073709551569},{"value":8643209504},{"value":0},{"value":4294967295},{"value":2},{"value":135252815118336},{"value":0},{"value":135252815118336},{"value":6170683896},{"value":8589934592},{"value":21592279046},{"value":21592279046},{"value":4412409862}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6724826564},"cpsr":{"value":4096},"fp":{"value":6170683744},"sp":{"value":6170683664},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6724750804},"far":{"value":0}},"queue":"com.apple.main-thread","frames":[{"imageOffset":3540,"symbol":"mach_msg2_trap","symbolLocation":8,"imageIndex":2},{"imageOffset":79300,"symbol":"mach_msg2_internal","symbolLocation":80,"imageIndex":2},{"imageOffset":39332,"symbol":"mach_msg_overwrite","symbolLocation":476,"imageIndex":2},{"imageOffset":4440,"symbol":"mach_msg","symbolLocation":24,"imageIndex":2},{"imageOffset":517760,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":160,"imageIndex":3},{"imageOffset":511812,"symbol":"__CFRunLoopRun","symbolLocation":1208,"imageIndex":3},{"imageOffset":508980,"symbol":"CFRunLoopRunSpecific","symbolLocation":608,"imageIndex":3},{"imageOffset":1025116,"symbol":"CFRunLoopRun","symbolLocation":64,"imageIndex":3},{"imageOffset":448824,"imageIndex":1},{"imageOffset":24916,"symbol":"start","symbolLocation":2476,"imageIndex":4}]},{"triggered":true,"id":917673,"threadState":{"x":[{"value":4296981019},{"value":8341820846,"objc-selector":"_dynamicContextEvaluation:patternString:"},{"value":8341820846,"objc-selector":"_dynamicContextEvaluation:patternString:"},{"value":0},{"value":6171234480},{"value":0},{"value":0},{"value":0},{"value":7813868916180873059},{"value":0},{"value":0},{"value":6171236859},{"value":37},{"value":0},{"value":6171236608},{"value":6171236824},{"value":31648760084655968},{"value":7701436842077239835},{"value":0},{"value":8553826792},{"value":6171234480},{"value":5584843568},{"value":4296981019},{"value":0},{"value":5584843568},{"value":8553826792},{"value":7},{"value":6171236834},{"value":6171235632}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6743637372},"cpsr":{"value":1610616832},"fp":{"value":6171233984},"sp":{"value":6171233936},"esr":{"value":1912602626,"description":" Address size fault"},"pc":{"value":6721201456,"matchesCrashFrame":1},"far":{"value":0}},"queue":"NESMProviderManager queue","frames":[{"imageOffset":255280,"symbol":"objc_opt_respondsToSelector","symbolLocation":28,"imageIndex":6},{"imageOffset":48508,"symbol":"_NSDescriptionWithStringProxyFunc","symbolLocation":56,"imageIndex":7},{"imageOffset":180568,"symbol":"__CFStringAppendFormatCore","symbolLocation":8548,"imageIndex":3},{"imageOffset":1448808,"symbol":"_CFStringCreateWithFormatAndArgumentsReturningMetadata","symbolLocation":184,"imageIndex":3},{"imageOffset":172008,"symbol":"_CFStringCreateWithFormatAndArgumentsAux2","symbolLocation":44,"imageIndex":3},{"imageOffset":180512,"symbol":"-[NSString initWithFormat:]","symbolLocation":52,"imageIndex":7},{"imageOffset":51904,"imageIndex":1},{"imageOffset":54616,"imageIndex":1},{"imageOffset":55768,"imageIndex":1},{"imageOffset":10064,"symbol":"_dispatch_call_block_and_release","symbolLocation":32,"imageIndex":8},{"imageOffset":17384,"symbol":"_dispatch_client_callout","symbolLocation":20,"imageIndex":8},{"imageOffset":47636,"symbol":"_dispatch_lane_serial_drain","symbolLocation":748,"imageIndex":8},{"imageOffset":50552,"symbol":"_dispatch_lane_invoke","symbolLocation":432,"imageIndex":8},{"imageOffset":94928,"symbol":"_dispatch_root_queue_drain_deferred_wlh","symbolLocation":288,"imageIndex":8},{"imageOffset":92996,"symbol":"_dispatch_workloop_worker_thread","symbolLocation":404,"imageIndex":8},{"imageOffset":12300,"symbol":"_pthread_wqthread","symbolLocation":288,"imageIndex":9},{"imageOffset":7464,"symbol":"start_wqthread","symbolLocation":8,"imageIndex":9}]},{"id":917674,"threadState":{"x":[{"value":1},{"value":0},{"value":1},{"value":6171813080},{"value":1},{"value":0},{"value":0},{"value":1027},{"value":1024},{"value":8468122432,"symbolLocation":0,"symbol":"_dispatch_mgr_q"},{"value":1024},{"value":2147485951},{"value":549755813888},{"value":0},{"value":0},{"value":5376},{"value":375},{"value":8551113856},{"value":0},{"value":1027},{"value":0},{"value":0},{"value":1},{"value":6171813080},{"value":1},{"value":6171813080},{"value":5584787568},{"value":132096},{"value":8468122432,"symbolLocation":0,"symbol":"_dispatch_mgr_q"}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6723388140},"cpsr":{"value":4096},"fp":{"value":6171813056},"sp":{"value":6171812960},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6724758280},"far":{"value":0}},"queue":"NetworkExtension session queue","frames":[{"imageOffset":11016,"symbol":"kevent_id","symbolLocation":8,"imageIndex":2},{"imageOffset":160492,"symbol":"_dispatch_kq_poll","symbolLocation":228,"imageIndex":8},{"imageOffset":163028,"symbol":"_dispatch_event_loop_wait_for_ownership","symbolLocation":436,"imageIndex":8},{"imageOffset":80808,"symbol":"__DISPATCH_WAIT_FOR_QUEUE__","symbolLocation":340,"imageIndex":8},{"imageOffset":79728,"symbol":"_dispatch_sync_f_slow","symbolLocation":148,"imageIndex":8},{"imageOffset":64372,"imageIndex":1},{"imageOffset":184860,"imageIndex":1},{"imageOffset":554368,"imageIndex":1},{"imageOffset":10064,"symbol":"_dispatch_call_block_and_release","symbolLocation":32,"imageIndex":8},{"imageOffset":17384,"symbol":"_dispatch_client_callout","symbolLocation":20,"imageIndex":8},{"imageOffset":47636,"symbol":"_dispatch_lane_serial_drain","symbolLocation":748,"imageIndex":8},{"imageOffset":50552,"symbol":"_dispatch_lane_invoke","symbolLocation":432,"imageIndex":8},{"imageOffset":94928,"symbol":"_dispatch_root_queue_drain_deferred_wlh","symbolLocation":288,"imageIndex":8},{"imageOffset":92996,"symbol":"_dispatch_workloop_worker_thread","symbolLocation":404,"imageIndex":8},{"imageOffset":12300,"symbol":"_pthread_wqthread","symbolLocation":288,"imageIndex":9},{"imageOffset":7464,"symbol":"start_wqthread","symbolLocation":8,"imageIndex":9}]},{"id":917677,"threadState":{"x":[{"value":0},{"value":0},{"value":5595307472},{"value":38},{"value":6172384656},{"value":4},{"value":1},{"value":6172384254},{"value":16},{"value":8341814039,"objc-selector":"length"},{"value":5460596655},{"value":7},{"value":7},{"value":5585843472},{"value":106819762129917961,"symbolLocation":106819753661693953,"symbol":"OBJC_CLASS_$_NSConcreteMutableData"},{"value":8468224008,"symbolLocation":0,"symbol":"OBJC_CLASS_$_NSConcreteMutableData"},{"value":523},{"value":8501612616},{"value":0},{"value":6172384736},{"value":5585833536},{"value":5595307472},{"value":5595308144},{"value":8501465088},{"value":5595294928},{"value":5595307664},{"value":0},{"value":5595301408},{"value":6172384865}],"flavor":"ARM_THREAD_STATE64","lr":{"value":7017697988},"cpsr":{"value":1073745920},"fp":{"value":6172385120},"sp":{"value":6172384528},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6724810732},"far":{"value":0}},"queue":"NetworkExtension session queue","frames":[{"imageOffset":63468,"symbol":"necp_session_action","symbolLocation":8,"imageIndex":2},{"imageOffset":1450692,"symbol":"-[NEPolicySession addPolicy:storeLocally:]","symbolLocation":3188,"imageIndex":10},{"imageOffset":208500,"imageIndex":1},{"imageOffset":208136,"imageIndex":1},{"imageOffset":17384,"symbol":"_dispatch_client_callout","symbolLocation":20,"imageIndex":8},{"imageOffset":23656,"symbol":"_dispatch_once_callout","symbolLocation":32,"imageIndex":8},{"imageOffset":207272,"imageIndex":1},{"imageOffset":205612,"imageIndex":1},{"imageOffset":538944,"imageIndex":1},{"imageOffset":555076,"imageIndex":1},{"imageOffset":554368,"imageIndex":1},{"imageOffset":628304,"imageIndex":1},{"imageOffset":116432,"imageIndex":1},{"imageOffset":630432,"imageIndex":1},{"imageOffset":10064,"symbol":"_dispatch_call_block_and_release","symbolLocation":32,"imageIndex":8},{"imageOffset":17384,"symbol":"_dispatch_client_callout","symbolLocation":20,"imageIndex":8},{"imageOffset":47636,"symbol":"_dispatch_lane_serial_drain","symbolLocation":748,"imageIndex":8},{"imageOffset":50552,"symbol":"_dispatch_lane_invoke","symbolLocation":432,"imageIndex":8},{"imageOffset":94928,"symbol":"_dispatch_root_queue_drain_deferred_wlh","symbolLocation":288,"imageIndex":8},{"imageOffset":92996,"symbol":"_dispatch_workloop_worker_thread","symbolLocation":404,"imageIndex":8},{"imageOffset":12300,"symbol":"_pthread_wqthread","symbolLocation":288,"imageIndex":9},{"imageOffset":7464,"symbol":"start_wqthread","symbolLocation":8,"imageIndex":9}]},{"id":917680,"threadState":{"x":[{"value":1},{"value":0},{"value":1},{"value":6172959960},{"value":1},{"value":0},{"value":0},{"value":1027},{"value":1024},{"value":8468122432,"symbolLocation":0,"symbol":"_dispatch_mgr_q"},{"value":1024},{"value":2147485951},{"value":6172963040},{"value":9005137670438912},{"value":7177620374324656,"symbolLocation":7177611906121728,"symbol":"__CFConstantStringClassReference"},{"value":8468202928,"symbolLocation":0,"symbol":"__CFConstantStringClassReference"},{"value":375},{"value":8551113856},{"value":0},{"value":1027},{"value":0},{"value":0},{"value":1},{"value":6172959960},{"value":1},{"value":6172959960},{"value":5584787568},{"value":132096},{"value":8468122432,"symbolLocation":0,"symbol":"_dispatch_mgr_q"}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6723388140},"cpsr":{"value":4096},"fp":{"value":6172959936},"sp":{"value":6172959840},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6724758280},"far":{"value":0}},"queue":"NetworkExtension session queue","frames":[{"imageOffset":11016,"symbol":"kevent_id","symbolLocation":8,"imageIndex":2},{"imageOffset":160492,"symbol":"_dispatch_kq_poll","symbolLocation":228,"imageIndex":8},{"imageOffset":163028,"symbol":"_dispatch_event_loop_wait_for_ownership","symbolLocation":436,"imageIndex":8},{"imageOffset":80808,"symbol":"__DISPATCH_WAIT_FOR_QUEUE__","symbolLocation":340,"imageIndex":8},{"imageOffset":79728,"symbol":"_dispatch_sync_f_slow","symbolLocation":148,"imageIndex":8},{"imageOffset":64372,"imageIndex":1},{"imageOffset":184860,"imageIndex":1},{"imageOffset":554368,"imageIndex":1},{"imageOffset":10064,"symbol":"_dispatch_call_block_and_release","symbolLocation":32,"imageIndex":8},{"imageOffset":17384,"symbol":"_dispatch_client_callout","symbolLocation":20,"imageIndex":8},{"imageOffset":47636,"symbol":"_dispatch_lane_serial_drain","symbolLocation":748,"imageIndex":8},{"imageOffset":50552,"symbol":"_dispatch_lane_invoke","symbolLocation":432,"imageIndex":8},{"imageOffset":94928,"symbol":"_dispatch_root_queue_drain_deferred_wlh","symbolLocation":288,"imageIndex":8},{"imageOffset":92996,"symbol":"_dispatch_workloop_worker_thread","symbolLocation":404,"imageIndex":8},{"imageOffset":12300,"symbol":"_pthread_wqthread","symbolLocation":288,"imageIndex":9},{"imageOffset":7464,"symbol":"start_wqthread","symbolLocation":8,"imageIndex":9}]},{"id":917681,"frames":[{"imageOffset":7456,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":9}],"threadState":{"x":[{"value":6173536256},{"value":14859},{"value":6172999680},{"value":0},{"value":409602},{"value":18446744073709551615},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":0},"cpsr":{"value":4096},"fp":{"value":0},"sp":{"value":6173536256},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6724996384},"far":{"value":0}}},{"id":917682,"frames":[{"imageOffset":7456,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":9}],"threadState":{"x":[{"value":6174109696},{"value":25859},{"value":6173573120},{"value":0},{"value":409602},{"value":18446744073709551615},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":0},"cpsr":{"value":4096},"fp":{"value":0},"sp":{"value":6174109696},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6724996384},"far":{"value":0}}},{"id":917683,"threadState":{"x":[{"value":1},{"value":0},{"value":1},{"value":6174679272},{"value":1},{"value":0},{"value":0},{"value":1027},{"value":1024},{"value":8468122432,"symbolLocation":0,"symbol":"_dispatch_mgr_q"},{"value":1024},{"value":2147485951},{"value":6174683360},{"value":9005137670438912},{"value":1970333305177520,"symbolLocation":1970324836974592,"symbol":"__CFConstantStringClassReference"},{"value":8468202928,"symbolLocation":0,"symbol":"__CFConstantStringClassReference"},{"value":375},{"value":8551113856},{"value":0},{"value":1027},{"value":0},{"value":0},{"value":1},{"value":6174679272},{"value":1},{"value":6174679272},{"value":5584787568},{"value":132096},{"value":8468122432,"symbolLocation":0,"symbol":"_dispatch_mgr_q"}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6723388140},"cpsr":{"value":4096},"fp":{"value":6174679248},"sp":{"value":6174679152},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6724758280},"far":{"value":0}},"queue":"NetworkExtension session queue","frames":[{"imageOffset":11016,"symbol":"kevent_id","symbolLocation":8,"imageIndex":2},{"imageOffset":160492,"symbol":"_dispatch_kq_poll","symbolLocation":228,"imageIndex":8},{"imageOffset":163028,"symbol":"_dispatch_event_loop_wait_for_ownership","symbolLocation":436,"imageIndex":8},{"imageOffset":80808,"symbol":"__DISPATCH_WAIT_FOR_QUEUE__","symbolLocation":340,"imageIndex":8},{"imageOffset":79728,"symbol":"_dispatch_sync_f_slow","symbolLocation":148,"imageIndex":8},{"imageOffset":64372,"imageIndex":1},{"imageOffset":185648,"imageIndex":1},{"imageOffset":186800,"imageIndex":1},{"imageOffset":484892,"imageIndex":1},{"imageOffset":198804,"imageIndex":1},{"imageOffset":485476,"imageIndex":1},{"imageOffset":191808,"imageIndex":1},{"imageOffset":451596,"imageIndex":1},{"imageOffset":178864,"imageIndex":1},{"imageOffset":199892,"imageIndex":1},{"imageOffset":642864,"imageIndex":1},{"imageOffset":10064,"symbol":"_dispatch_call_block_and_release","symbolLocation":32,"imageIndex":8},{"imageOffset":17384,"symbol":"_dispatch_client_callout","symbolLocation":20,"imageIndex":8},{"imageOffset":47636,"symbol":"_dispatch_lane_serial_drain","symbolLocation":748,"imageIndex":8},{"imageOffset":50552,"symbol":"_dispatch_lane_invoke","symbolLocation":432,"imageIndex":8},{"imageOffset":94928,"symbol":"_dispatch_root_queue_drain_deferred_wlh","symbolLocation":288,"imageIndex":8},{"imageOffset":92996,"symbol":"_dispatch_workloop_worker_thread","symbolLocation":404,"imageIndex":8},{"imageOffset":12300,"symbol":"_pthread_wqthread","symbolLocation":288,"imageIndex":9},{"imageOffset":7464,"symbol":"start_wqthread","symbolLocation":8,"imageIndex":9}]},{"id":917687,"frames":[{"imageOffset":7456,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":9}],"threadState":{"x":[{"value":6175256576},{"value":27395},{"value":6174720000},{"value":0},{"value":409603},{"value":18446744073709551615},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":0},"cpsr":{"value":4096},"fp":{"value":0},"sp":{"value":6175256576},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6724996384},"far":{"value":0}}}],
  "usedImages" : [
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 4298801152,
    "CFBundleShortVersionString" : "3.0",
    "CFBundleIdentifier" : "com.apple.security.csparser",
    "size" : 131072,
    "uuid" : "04123326-63a9-3ed4-ab3e-fac01f40a01f",
    "path" : "\/System\/Library\/Frameworks\/Security.framework\/Versions\/A\/PlugIns\/csparser.bundle\/Contents\/MacOS\/csparser",
    "name" : "csparser",
    "CFBundleVersion" : "61123.141.1"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 4296196096,
    "size" : 802816,
    "uuid" : "84b39127-9fb2-315b-8e93-02c0cc56ca3a",
    "path" : "\/usr\/libexec\/nesessionmanager",
    "name" : "nesessionmanager"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6724747264,
    "size" : 241644,
    "uuid" : "806c8405-e7d9-3b01-a3e3-a94a39c34e1a",
    "path" : "\/usr\/lib\/system\/libsystem_kernel.dylib",
    "name" : "libsystem_kernel.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6725414912,
    "CFBundleShortVersionString" : "6.9",
    "CFBundleIdentifier" : "com.apple.CoreFoundation",
    "size" : 5083136,
    "uuid" : "0a1de05d-470f-3bfe-83fb-89e1fe28c139",
    "path" : "\/System\/Library\/Frameworks\/CoreFoundation.framework\/Versions\/A\/CoreFoundation",
    "name" : "CoreFoundation",
    "CFBundleVersion" : "2602"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6721277952,
    "size" : 562444,
    "uuid" : "509bbd41-f481-3744-a896-6ed06c35b3d6",
    "path" : "\/usr\/lib\/dyld",
    "name" : "dyld"
  },
  {
    "size" : 0,
    "source" : "A",
    "base" : 0,
    "uuid" : "00000000-0000-0000-0000-000000000000"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6720946176,
    "size" : 331276,
    "uuid" : "159dc289-06ed-3c83-a778-318dfd719044",
    "path" : "\/usr\/lib\/libobjc.A.dylib",
    "name" : "libobjc.A.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6743588864,
    "CFBundleShortVersionString" : "6.9",
    "CFBundleIdentifier" : "com.apple.Foundation",
    "size" : 12967936,
    "uuid" : "4588b815-e39a-332e-8901-ae46a7b92a65",
    "path" : "\/System\/Library\/Frameworks\/Foundation.framework\/Versions\/C\/Foundation",
    "name" : "Foundation",
    "CFBundleVersion" : "2602"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6723227648,
    "size" : 294912,
    "uuid" : "f8460dbc-fe3f-3afb-8ec3-d660994edda1",
    "path" : "\/usr\/lib\/system\/libdispatch.dylib",
    "name" : "libdispatch.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6724988928,
    "size" : 53248,
    "uuid" : "57cf0002-c127-3580-a0b7-fd447cc0f745",
    "path" : "\/usr\/lib\/system\/libsystem_pthread.dylib",
    "name" : "libsystem_pthread.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 7016247296,
    "CFBundleShortVersionString" : "1.0",
    "CFBundleIdentifier" : "com.apple.NetworkExtension",
    "size" : 2351104,
    "uuid" : "2d2997a2-9b14-30dc-9cf2-d03cab68a340",
    "path" : "\/System\/Library\/Frameworks\/NetworkExtension.framework\/Versions\/A\/NetworkExtension",
    "name" : "NetworkExtension",
    "CFBundleVersion" : "1"
  }
],
  "sharedCache" : {
  "base" : 6720520192,
  "size" : 4214374400,
  "uuid" : "44103be1-5112-3ccc-9d8b-2519cd424afb"
},
  "vmSummary" : "ReadOnly portion of Libraries: Total=725.2M resident=0K(0%) swapped_out_or_unallocated=725.2M(100%)\nWritable regions: Total=240.6M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=240.6M(100%)\n\n                                VIRTUAL   REGION \nREGION TYPE                        SIZE    COUNT (non-coalesced) \n===========                     =======  ======= \nActivity Tracing                   256K        1 \nDispatch continuations            64.0M        1 \nKernel Alloc Once                   32K        1 \nMALLOC                           164.1M       15 \nMALLOC guard page                   96K        6 \nSTACK GUARD                       56.1M        9 \nStack                             12.2M        9 \nVM_ALLOCATE                         16K        1 \n__AUTH                             620K      136 \n__AUTH_CONST                       9.8M      269 \n__DATA                            2882K      256 \n__DATA_CONST                      11.0M      271 \n__DATA_DIRTY                       458K       93 \n__FONT_DATA                          4K        1 \n__LINKEDIT                       525.4M        3 \n__OBJC_RO                         71.9M        1 \n__OBJC_RW                         2200K        1 \n__TEXT                           199.8M      280 \ndyld private memory                272K        1 \nmapped file                       32.0M        5 \nshared memory                      608K        5 \n===========                     =======  ======= \nTOTAL                              1.1G     1365 \n",
  "legacyInfo" : {
  "threadTriggered" : {
    "queue" : "NESMProviderManager queue"
  }
},
  "logWritingSignature" : "ab6271662c4e4e7f0ae4e14cad8b27bfb0710a21"
}

I just left the app trying to enable the network extension running for a while and then I saw the nesessionmanager crash.

Some additional notes:

When the sysextd crashes happen there are some logs from the process, these 2 are warnings:

error 22:02:22.479413-0300 sysextd cannot open file at line 49295 of [1b37c146ee]
error 22:02:22.479437-0300 sysextd os_unix.c:49295: (2) open(/private/var/db/DetachedSignatures) - No such file or directory

Also this is a log that I just coincidetally saw while browsing the logs from nesessionmanager:

Bundle: <private>, key: SYSEXT_INVALID_MACH_SERVICE_NAME, value: SYSEXT_INVALID_MACH_SERVICE_NAME, table: Localizable, localizationNames: [en], result: System extension %@ has an invalid %@ key in its Info.plist: The value of the %@ key must be prefixed with one of the App Groups in the %@ entitlement.
Accepted Answer

I suspect that the sysextd crash is a known issue that seems to be caused by a race condition in the code (r. 99777199).

The nesessionmanager crash is more likely to be caused by the properties in your sysex. The crashing thread looks like this:

5 Foundation 0x191f5c120 -[NSString initWithFormat:] + 52
6 nesessionmanager 0x100138ac0 -[NESMProviderManager createSystemExtensionErrorWithCode:extensionInfo:] + 440
7 nesessionmanager 0x100139558 -[NESMProviderManager createLaunchdPlistEntriesFromExtensionBundle:extensionInfo:error:] + 2464
8 nesessionmanager 0x1001399d8 __84-[NESMProviderManager listener:validateExtension:atTemporaryBundleURL:replyHandler:]_block_invoke + 212

NE is trying to validate your sysex, that’s failed, and it’s crashed trying to generate the error O-:

Both of these are obviously bugs in our OS — these subsystems should fail rather than crash — and I encourage you to file bug reports about them. Include a sysdiagnose log and a copy of your built app (the broken one, not the fixed one). Please post your bug numbers, just for the record.

However, frame 7 in the NE crash suggests that you have an app group mismatch. NE wants your Mach service name to be ‘inside’ an app group. For example, in my test project I have this:

% codesign -d --entitlements - QNE2DNSProxyMac.app/Contents/Library/SystemExtensions/com.example.apple-samplecode.QNE2DNSProxyMac.SysEx.systemextension
[Dict]
[Value]
[Array]
[String] SKMME9E2Y8.com.example.apple-samplecode.QNE2DNSProxyMac
% plutil -p QNE2DNSProxyMac.app/Contents/Library/SystemExtensions/com.example.apple-samplecode.QNE2DNSProxyMac.SysEx.systemextension/Contents/Info.plist
{
"NetworkExtension" => {
"NEMachServiceName" => "SKMME9E2Y8.com.example.apple-samplecode.QNE2DNSProxyMac.service"
"NEProviderClasses" => {
"com.apple.networkextension.dns-proxy" => "com_example_apple_samplecode_QNE2DNSProxyMac_SysEx.DNSProxyProvider"
}
}
}

My app group, SKMME9E2Y8.com.example.apple-samplecode.QNE2DNSProxyMac, is a prefix of the Mach service name, SKMME9E2Y8.com.example.apple-samplecode.QNE2DNSProxyMac.service, and that’s what NE is checking for.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

DNS Proxy network extension doesn't start even after saving preferences successfully
 
 
Q