The problem
A Safari 16.0 user complained that Confluence's editor was totally broken, with the generic error "The editor didn't load this time. The connection timed out":
These two lines appear repeatedly in the Developer console:
[Error] WebSocket network error: The operation couldn’t be completed. (OSStatus error -9836.) (x2) [Warning] Synchrony: Warning: reconnect (Transport.handshakeOverXhr: ws connection failed, and cross-origin-long-polling is disabled)
The editor worked fine for this user in Chrome - just Safari is broken.
The Cause
I had recently modernized my Apache webserver TLS settings:
# modern configuration SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 -TLSv1.2
Safari 16.0 and 16.1 (latest as of ) seems to support TLSv1.3 just fine, except for when opening a websocket connection. Then (and only then) Safari tries to use TLSv1.2:
wiki.redradishtech.com:443 10.147.17.167 - - [28/Nov/2022:23:35:05 +1100] "GET /synchrony/v1/bayeux-sync1 HTTP/1.1" 200 5236 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Safari/605.1.15" 11359166 TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
If TLSv1.2 is disabled, as in my super-modern config, you get hangs and editor unhappiness.
Seems a few other people experienced this problem with Safari websockets too.
So much for the bleeding edge.