While updating our test devices to iOS 26, we noticed that the connection between devices are flaky. Often when connecting to a Peer from a device running iOS 26 we can observe the invite coming through and when accepting said invite, both ends going to .connecting state and a while later going back to .notConnected within the peer(_ peerID: MCPeerID, didChange state: MCSessionState) function. This happens regularly and retrying the invitation process several times usually resolves it. Do anyone have any information or guidance on how to resolve this issue?
Thank you very much for the very quick replies. Almost an honor to hear from two literal dev forum legends so quickly.
This is much, much funnier than you'd realized. Up until COVID took WWDC virtual, Quinn and I would regularly end up hanging out together in the WWDC labs... talking someone out of using MultipeerConnectivity. Apparently, we've continued that habit into the forums.
To the feedback FB22691771 I now added:
Fabulous, all of that was perfect. In terms of what the logs show, if you narrow down to the "MultipeerConnectivity" library, you'll clearly see that it's repeatedly discovering the device and attempting to connect, only to have the connection fail over and over again. What's causing the full failure pattern isn't clear, but it's likely tied to these messages on the receiver side:
2026-05-11 08:30:50.990771+0200 wifip2pd: [com.apple.awdl:subscribe] AWDLBrowse _rps-service._tcp.local will attempt to stop
2026-05-11 08:30:50.991521+0200 wifip2pd: [com.apple.awdl:subscribe] AWDLBrowse _rps-service._tcp.local was terminated with reason User Requested
I haven't figured out the exact timing, but it looks to me like there's a timing bug of some kind which is causing the system to teardown the AWDL interface before MPC is able to fully establish the connection. FYI, ignore the "User Requested" reason above, it's not referring to "you" or any action you took.
Two requests/suggestions:
-
Earlier I mentioned the sample "Building a custom peer-to-peer protocol". Please perform the same tests with that sample, as that will help validate whether this is an issue in the AWDL link itself or in how MPC is managing that connection.
-
If the sample above works (which I expect it will), try running both apps in "split screen" (so that they're both running at the same time). My guess is that you'll find that MPC starts working, which would confirm that this is an issue in MPC, not the broader network.
If you get a failure on #1, then please connect the same pair of sysdiagnoses and upload them to the bug as well. In the comments, note that this is reproducing them with our non-MPC sample.
Finally, if you end up collecting more sysdiagnoses (now or in the future), I'd recommend that you do the following before you actually start testing:
-
Turn the device off and leave it off for “a while". Basically, as long as possible (overnight would be great!), but a few 10 or 15 minutes is fine. The goal here is to create a very clear time gap in the log, so that's easy to see where the device powered on (this can be surprisingly hard to determine).
-
Turn the device on, unlock it, then leave it for a few minutes. Lots of "stuff" happens when a device first turns on, so leaving it like this helps reduce log noise when you actually start testing.
...then perform your tests and collect the log as usual.
None of those steps are necessarily essential, but they help make the log clearer and easier to analyze. For example, one issue with the logs you just sent is that you've done so much testing across so much time that there's no good way to determine exactly when the problem first occurred. That can be a problem if the clue we need is tied to how the Wi-Fi stat first initialized.
__
Kevin Elliott
DTS Engineer, CoreOS/Hardware