iOS looping/constant failover

Description
Hey all, we’re seeing occasional issues with our users on iOS where the user gets stuck in a permanent looping/reconnecting state. This is reproducible in the test/sample app.

Browser Console Error
The full error message or issue you are running into.

Which Web Video SDK version?
2.2.5

Video SDK Code Snippets
Nothing specific needs to be done, just use the sample app.

To Reproduce(If applicable)
Steps to reproduce the behavior:

  1. Run the sample app on iPhone 16, using Safari, iOS 18; not all devices show the problem, we haven’t narrowed it down that far yet, BUT the exact problem does reproduce when using BrowserStack’s “iPhone 16, Safari 18.5” browser. In case you’re tempted to think it’s a browserstack problem, it works fine on the same phone running Chrome (which is technically webkit, I know).

Screenshots

Troubleshooting Routes
Completely reproducible on browserstack using the sample app + Safari. Using Chrome on the exact same device does not exhibit the same problems, so it seems like something is being detected incorrectly in the Safari version.

Note that we have this problem on non-browserstack devices also, it’s just 100% replicable there.

Device (please complete the following information):

  • Device: iPhone
  • OS: 18.5
  • Browser: Safari
  • Browser Version 18.5

Additional context
It seems to get stuck in failover/out of failover looping. So something is triggering a failover when it shouldn’t, at least as far as I can tell. If you can determine the difference in the flow on Chrome for iOS vs Safari for iOS, that should get to the root problem.

Hey @unfounded-raccoon

Thanks for your feedback.

Could you share some problematic session IDs with us for troubleshooting purposes?

Thanks
Vic

isInMeeting: true
password: “”
sessionId: “+4xy4tz1Sl+TRMZy+s6bEg==”
topic: “topic”
userId: 17401856
userName: “Safari-813”

Here’s another if it helps:

isInMeeting: true
password: “”
sessionId: “yKEyTzW2QrqC0yobFpRNSg==”
topic: “topic”
userId: 16783360
userName: “Safari-556”

Hey @unfounded-raccoon

+4xy4tz1Sl+TRMZy+s6bEg==
yKEyTzW2QrqC0yobFpRNSg==

We tested on the BrowserStack and did observe constant failover issues, which are caused by unexpected socket disconnections triggering failover.

However, we also tested on a real iOS 18.5 device and were not able to reproduce the issue there.

Thanks
Vic

I understand, however this does occur (occasionally) on other iOS devices as well - exact same symptoms. And Chrome (on iOS) does NOT have the symptoms.

The user that initially reported this to me explicitly stated that they were using an iphone + safari, and after switching to Chrome, the problem went away.

Hi @unfounded-raccoon

That’s strange — Chrome on iOS is also based on WebKit, and this should remain the same even in the EU region.

Thanks
Vic

No disagreement here, which is why it was super weird that in browserstack, Chrome works when Safari doesnt, on the same device. That screams to me that there’s something else going on.

And again, this replicates for ACTUAL devices too, this is the exact experience my customer had - Safari (on a regular iphone) failed, switched to Chrome, and it worked.

Is there anything I can do to help you guys diagnose this one further?

Hey @unfounded-raccoon

Could you share some problematic session IDs from actual devices with us for troubleshooting purposes?

Thanks

Vic

You bet.

9h6YIIm/Qum33iyPYbqd3Q==

You’ll see they “joined the session” (but were kicked out) 62 times in a row.

Hi @unfounded-raccoon

9h6YIIm/Qum33iyPYbqd3Q==

This behavior is quite similar to what we observed on BrowserStack. From the logs, the constant failover was caused by an unexpected socket disconnection with the server.

We will optimize for this in the next version. It will be available in late August.

Thanks
Vic

Thanks Vic, great to hear.