This issue occurs due to
highwater (process part of iOS software) killing or blocking the neagent process. Due to available memory concerns for the device and the memory usage of the Pulse Mobile for iOS app uses to control the VPN tunnel, highwater may block the neagent process causing the disconnect.
From the PulseSecurePluginService.log, the issue is seen when there are a large number of split tunneling route entries printed in the log below:
20180604154344.483617 PulseVPN.bundle[p619.t1031] info DSPluginController::routeAddDestination, m_currConfig: {
Once the tunnel is connected, the log entry will appear stating the
Plugin started. This is a symptom of the neagent being closed by high-water.
20180521121556.589697 PulseVPN.bundle[p839.t1031] info Setting tunnel status to connected... (DSPluginController.m:2705)
20180521151747.34394 PulseVPN.bundle[p937.t1031] info Plugin started (DSPlugin.mm:138)
Additionally, in device console log, the following entry will confirm highwater is blocking the neagent process.
kernel[0] <Notice>: 203394.229 memorystatus: killing_highwater_process pid 3920 [neagent] (highwater 14) -
memorystatus_available_pages: 19079