iOS UDP Multicast: Receiving works but sending silently fails

Hi everyone,

I’m working with UDP Multicasting on iOS (iOS 15+) using Network.framework and facing a confusing issue.

Setup:

  • Multicast IP: 239.255.0.1
  • Port: 45454
  • Using NWConnectionGroup / NWMulticastGroup
  • NSLocalNetworkUsageDescription is present in Info.plist
  • Devices are on the same Wi-Fi network

Problem:

  • Receiving multicast packets works perfectly
  • Sending multicast packets does NOT work
  • No errors are thrown
  • send() completion handler reports success
  • stateUpdateHandler sometimes doesn’t transition to .ready
  • No packets are actually transmitted on the network

Observations:

  • The app can receive data from other multicast senders
  • Sending appears to be silently blocked
  • Reinstalling the app fixes the issue
  • This points to a Local Network permission problem
  • If permission was denied once, iOS does not re-prompt
  • Inbound multicast works, outbound multicast is blocked

Questions:

  1. Is it expected on iOS that receiving multicast works even when sending is blocked?
  2. Is reinstalling the app the only way to recover if Local Network permission was denied?
  3. Is there any reliable runtime way to detect that outbound multicast is blocked?
  4. Is NWConnectionGroup the correct and only supported way to send multicast on iOS?

Any clarification or official guidance would really help. Thanks in advance!

iOS UDP Multicast: Receiving works but sending silently fails
 
 
Q