NEPacketTunnelProvider Start Issue on macOS 14.5

We're encountering an issue with our Network Extension (utilizing NEPacketTunnelProvider and NETransparentProxy) on macOS 14.5 (23F79). On some systems, the VPN fails to automatically start after a reboot despite calling startVPNTunnel(). There are no error messages.

Our code attempts to start the tunnel:

.......
do {
  try manager.connection.startVPNTunnel()
  Logger.default("Started tunnel successfully")
} catch {
  Logger.error("Failed to launch tunnel")
}
......

System log analysis reveals the tunnel stopping due to userLogout (NEProviderStopReason(rawValue: 12)) during reboot. However, the Transparent Proxy stops due to userInitiated (NEProviderStopReason(rawValue: 1)) for the same reboot.

We need to understand:

Why the VPNTunnel isn't starting automatically. Why the userLogout reason is triggered during reboot.

Additional Context: We have manually started the VPN from System Settings before reboot.

NEPacketTunnelProvider Start Issue on macOS 14.5
 
 
Q