HTTP2 Broke Websites on Safari & iPhone

We recently enabled HTTP2 on our InMotion VPS.  That, along with some other tuning, resulted in some very high performance scores from Google Page Speed, GTMetrix, and other tools.  There was a different magic formula with each site, but overall we saw significant increases.

That also came with a significant issue though.   After a day we started getting reports of people having issues accessing sites from Safari & iPhones!  Kind of a big deal.

The Error reported was:

“The operation couldn’t be completed. Protocol error” (NSPOSIXErrorDomain:100)

The Issue:

There is an apache header sent to Safari about upgrading the protocol and Safari has an issue with this.   The header needs to be hidden so it’s not sent to Safari.

There is a great write up on it here:  https://megamorf.gitlab.io/2019/08/27/safari-nsposixerrordomain-100-error-with-nginx-and-apache.html

and another here:  https://help.poralix.com/articles/iphone-does-not-open-https-site-safari-nsposixerrordomain

A couple quick command line commands on the server should fix this quickly.

If you are not familiar with server management and command line work, contact your hosting tech support.  Most decent hosts will be happy to make the update for you.

echo "proxy_hide_header Upgrade;" >> /etc/nginx/conf.d/fix_http2.conf

service nginx restart