After an app update replaces our extension with the new version, the XPC connection between the app and the extension fails to work roughly 20% of the time. Once it's broken, it stays broken — our reconnect/retry logic doesn't recover it, stopping and starting the extension doesn't recover it, and the only thing that fixes it is a full machine restart. This obviously isn't ideal.
I've seen a few other threads describing the same or a very similar issue:
https://developer.apple.com/forums/thread/728063
https://developer.apple.com/forums/thread/779395
https://developer.apple.com/forums/thread/742992
On a broken upgrade cycle, when we run:
sudo launchctl print system/NetworkExtension.com.company.example.app.filter.5.5.0.2248
the endpoints entry is missing from the output entirely. On a working upgrade cycle, the same command shows endpoints = {} is present. So it looks like our XPC service isn't actually getting registered with launchd in the broken case.
We've tried various changes to our connection logic, but nothing prevents the issue — random upgrades still end up broken with no obvious cause.
Is there a known way to recover the XPC registration without requiring a machine restart?
1
0
45