NWPathMonitor Reports Unexpected satisfied→unsatisfied→satisfied Sequence After WiFi Re-enablement

I am developing an iOS application using NWPathMonitor for network connectivity monitoring. We discovered a reproducible issue where disabling and re-enabling WiFi triggers an unexpected network status sequence.

ENVIRONMENT: iOS Version: 17.x Device: iPhone (various models tested) Network Framework: NWPathMonitor from iOS Network framework

STEPS TO REPRODUCE:

  1. Device connected to WiFi normally
  2. Disable WiFi via Settings or Control Center
  3. Re-enable WiFi via Settings or Control Center

EXPECTED BEHAVIOR: WiFi reconnects and NWPathMonitor reports stable satisfied status

ACTUAL BEHAVIOR:

  1. T+0s: WiFi re-enables, NWPathMonitor reports path.status = .satisfied
  2. T+8s: NWPathMonitor unexpectedly reports path.status = .unsatisfied with unsatisfiedReason = .notAvailable
  3. T+9-10s: NWPathMonitor reports path.status = .satisfied again
  4. Connection becomes stable afterward

NETWORK PATH TIMELINE: T+0s: satisfied (IPv4: true, DNS: false) T+140ms: satisfied (IPv4: true, DNS: true) T+8.0s: unsatisfied (reason: notAvailable, no interfaces available) T+10.0s: satisfied (IPv4: true, DNS: true)

KEY OBSERVATIONS:

  • Timing consistency: unsatisfied event always occurs ~8 seconds after reconnection
  • resolution: "Reset Network Settings" eliminates this behavior

TECHNICAL QUESTIONS:

  1. What causes the 8-second delayed unsatisfied status after WiFi re-enablement?

  2. Is this expected behavior that applications should handle?

  3. Why does reset network setting in iPhone fix this issue?

Do you see the same problem on iOS 18? And iOS 26 beta?

Share and Enjoy

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

NWPathMonitor Reports Unexpected satisfied→unsatisfied→satisfied Sequence After WiFi Re-enablement
 
 
Q