nesessionmanager exits with active Packet Tunnel sessions and causes NEProviderStopReasonInternalError

On iOS 26.5.2 (23F84), we are observing repeated transient VPN restarts caused by the system nesessionmanager process exiting while active NEPacketTunnelProvider sessions still exist.

Immediately before the restart, the tunnel is healthy: WireGuard handshakes, connectivity checks, key validation, and PQS checks all succeed.

At the time of failure:

All XPC connections to nesessionmanager are invalidated. NetworkExtension calls our provider’s stopTunnel(with:) with NEProviderStopReason.internalError (raw value 17). The extension log says: Calling stopTunnelWithReason because: None, followed by IPC detached. UserEventAgent reports: nesessionmanager exited with active sessions, re-launching nesessionmanager to clear agent status. The system launches a new nesessionmanager process and restarts the tunnel through On Demand approximately two seconds later. This occurred 15 times within approximately 44 hours. At least one occurrence coincided with multiple processes being terminated under apparent memory pressure.

A sysdiagnose captured approximately one minute after an occurrence, together with the packet tunnel logs and detailed timeline, has been submitted in Feedback Assistant:

FB24185635

Is this a known nesessionmanager or jetsam/idle-exit issue on iOS 26.5.2? Is there any supported way for a VPN provider to distinguish this system-level transient restart from an actual provider internal error?

FB24185635

Thanks for filing that. Overall, I think that’s the best path forward for this issue, but I do have some comments…

Attached to that bug is sysdiagnose_2026.08.06_14-07-21….tar.gz, and in there I found this:

type: default
time: 2026-08-06 14:06:20.210141 +0300
process: launchd
subsystem: user/501/com.apple.nesessionmanager [25386]
message: exited with exit reason (namespace: 1 code: 0x2) - JETSAM_REASON_MEMORY_HIGHWATER, ran for 2154377ms, time-to-relaunch: 885233ms

This is Not Good™. nesessionmanager was terminated by jetsam for exceeding its memory limit, and that’s what caused the system to tear down your tunnel.

You mentioned seeing this on iOS 26.5.2. Is this issue specific to that release? Or are you seeing it on 26.6? And the latest 27.0 beta?

Share and Enjoy

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

nesessionmanager exits with active Packet Tunnel sessions and causes NEProviderStopReasonInternalError
 
 
Q