WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED MOVED
302561
Safari on iOS 26.1 with iCloud Privacy Relay enabled cannot establish multiple WebSocket connections to the same host:port
https://bugs.webkit.org/show_bug.cgi?id=302561
Summary
Safari on iOS 26.1 with iCloud Privacy Relay enabled cannot establish multipl...
rayleigh
Reported
2025-11-14 18:57:42 PST
Created
attachment 477400
[details]
recordings and test page # Overview On iOS 26.1, when iCloud+ Privacy Relay is enabled, Safari is unable to establish more than one WebSocket connection to the same IP and port within a single page. The first WebSocket connection succeeds, but all subsequent connections remain in the Connecting state indefinitely. If the first (successful) connection is manually closed, the remaining pending connections immediately succeed. This issue does not occur when different ports are used or when Privacy Relay is turned off. We believe this regression is related to networking changes introduced in iOS 26 (referenced in
https://webkit.org/blog/17333/webkit-features-in-safari-26-0/
), as well as several related reports involving Privacy Relay and QUIC. --- # Steps to Reproduce 1. Prepare an iPhone running iOS 26.1, with an active iCloud+ subscription and Privacy Relay enabled. 2. Open Safari and visit our demo page(if there are any error, you can find test_wss_connect.html in attachment too):
https://test-ws-fishel-feng-fishelfengs-projects.vercel.app/
3. Connect the iPhone to macOS Safari Web Inspector via USB for debugging. 4. On the demo page, click the button “Create 4 Connections (Verify Serialization)”. 5. Observe that only the first WebSocket connection succeeds. 6. Manually close the first successful WebSocket using macOS Safari Web Inspector. 7. Observe that the remaining three WebSocket connections immediately succeed. --- # Expected Behavior After clicking “Create 4 Connections”, all four WebSocket connections should succeed, regardless of Privacy Relay status. --- # Actual Behavior - Only the first WebSocket connection succeeds. - All subsequent connections remain stuck in Connecting until the first connection is closed. - Closing the first connection instantly allows the remaining ones to succeed. --- # Additional Findings - Based on our packet capture and request header analysis, the WebSocket upgrade requests are indeed relayed over QUIC when Privacy Relay is enabled. - The issue does not appear when connecting to different ports, only when multiple connections share the same IP + port. - We believe this may be related to changes introduced in the iOS 26 networking stack. --- # Related Reports We Found (All observations below are strictly based on our reading of these reports, without additional interpretation) -
Bug 298616
(
https://bugs.webkit.org/show_bug.cgi?id=298616
) Reported WebSocket failures when Privacy Relay is enabled. Although stated to be fixed in iOS 26.1, our tests indicate that failures still occur in the scenario of multiple same-host+port WebSockets. - Figma community report
https://forum.figma.com/report-a-problem-6/safari-maxos-26-sometimes-not-loading-websockets-45307
Mentions WebSocket loading problems associated with Privacy Relay. - Apple Support thread
https://discussions.apple.com/thread/256142477?answerId=261592734022&sortBy=rank
Users report WebSocket connection issues specifically when Privacy Relay is turned on. These reports appear to involve similar symptoms related to WebSocket failures under Privacy Relay. --- # Attachments We can provide the following upon request: - Screen recordings for two separate test runs - Network panel recordings from Safari Web Inspector --- # Request We would appreciate confirmation from the WebKit team on whether: - This is a known limitation or regression in Privacy Relay handling on iOS 26.1, - The issue is related to the previously reported WebSocket/Privacy Relay bugs and any solution to work with privacy relay enabled.
Attachments
recordings and test page
(9.45 MB, application/zip)
2025-11-14 18:57 PST
,
rayleigh
no flags
Details
View All
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2025-11-16 22:13:42 PST
<
rdar://problem/164859796
>
youenn fablet
Comment 2
2025-11-16 22:14:45 PST
I am not able to access to the link you provided. I put the code in the test page in
https://codepen.io/youennf/pen/qEZRGZL
and was able to reproduce on a recent iOS build: - Without private relay off, the 4 connections open - With private relay on, only the first connection opens.
rayleigh
Comment 3
2025-11-16 22:24:13 PST
(In reply to youenn fablet from
comment #2
)
> I am not able to access to the link you provided. > I put the code in the test page in
https://codepen.io/youennf/pen/qEZRGZL
> and was able to reproduce on a recent iOS build: > - Without private relay off, the 4 connections open > - With private relay on, only the first connection opens.
Hi, thank you for your work. (Sorry that something wrong with my demo site) 1. When I mannually close the first connection, the remaining 3 connect successfully immediately. 2. And if there is no DELAY_MS=3s for those connections, just new Websocket(url) 4 times in a loop, all of them can succeed. Hope this can provide more information to you.
Alexey Proskuryakov
Comment 4
2025-11-17 09:22:49 PST
For what it's worth, when I ran the test without iCloud Private Relay, the fourth connection failed server side with 429 Too Many Requests. Just something to keep an eye out for when testing.
rayleigh
Comment 5
2025-11-17 21:37:17 PST
Thank you all so much. Not sure is there any workaround from Apple side to solve this issue for users private relay enabled, some of our customers have been severely affected due to our service not working, but we are not unable to contact them to disable the private relay feature.
Alexey Proskuryakov
Comment 6
2025-11-19 08:56:20 PST
We are currently tracking this as an underlying framework issue outside WebKit, so marking as MOVED. Apple engineers who work on this framework will be investigating. Youenn and myself will keep an eye on this bug in case there are further comments. I can't promise to post any updates though, just because there is too much traffic for me to always remember.
rayleigh
Comment 7
2025-11-19 17:24:30 PST
Appreciate the clarification. Thanks to you and Youenn for the update and for looking into this.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug