Google Chrome error ERR_SPDY_PROTOCOL_ERROR – FIX What is the 'ERR_SPDY_PROTOCOL_ERROR' error on Google Chrome and how to fix it

Google Chrome disabilita Java e Silverlight ma è possibile riattivarli fino a settembre

If you’ve stumbled upon this post it probably means you’re experiencing this odd error from Google Chrome:

Google Chrome error ERR_SPDY_PROTOCOL_ERROR - FIX

This site can’t be reached

The webpage at https://example.com/ might be temporarily down or it may have moved permanently to a new web address.

ERR_SPDY_PROTOCOL_ERROR

SPDY Protocol

As you might already know,  SPDY (pronounced “speedy”) is a deprecated open-specification networking protocol developed by Google for transporting web content – more specifically, to help load web pages more quickly. To obtain this performance gain, the SPDY protocol manipulates HTTP traffic to speed up the web page load latency – using compression protocols, multiplexing and prioritization strategies – and also (supposedly) improving web security.

The development of SPDY started in 2012 and was implemented in Google Chrome (and other browser) shortly after. The protocol was eventually set to “deprecated” by Google in February 2015, when the final ratification of the HTTP/2 standard was published. The SPDY support was removed since Google Chrome 51 and Mozilla Firefox 50. Apple has also deprecated the technology in MacOS 10.14.4 and iOS 12.2.

The Solution

Depending on your specific scenario, the issue can either be at server-side (i.e. on the web server hosting the website) or at client-side (i.e. on the browser). In the following paragraph we’ll try to address most of the common causes by enumerating the relevant configuration checks and/or changes that should be applied. Needless to say, you can easily determine if it’s a client issue or a server issue by testing the issue on multiple machines: if each and every Google Chrome is raising the same exception when trying to load the same identical URL, then it’s most likely a server-side issue; conversely, if only one (or a small bunch) of clients are giving such result, you’re probably facing a client-side issue.

Server-Side checks

One of the reasons why you may see the ERR_SPDY_PROTOCOL_ERROR message is an invalid HTTP header coming from the server. Google Chrome applies a strict set of rules when processing HTTP/2 response – for example, is often unable to handle:

  • headers with a space instead of a dash (e.g. Referrer Policy instead of Referrer-Policy);
  • headers with double colon after the key name (e.g. Contenty-Securit-Policy:: instead of Contenty-Securit-Policy:);
It’s worth noting that Mozilla Firefox, Safari and other less-strict HTTP/s compatible browsers will almost always ignore/skip any invalid HTTP header and just display the page without raising errors.

The first thing to do is to login to your web server machine and check your IIS / NGINX / APACHE service configuration files to ensure that these headers are being sent correctly. Notice that Mozilla Firefox, Safari and other less-strict HTTP/s compatible browsers will almost always ignore any invalid HTTP headers like the above ones, and will just display the page.

Client-Side actions

If the server-side checks are not applicable in your scenario – or you found no issues there – you should try the following workarounds on your Google Chrome browser.

  1. Close/reopen Google Chrome and try to reload the page again. We know that this is rather trivial suggestion, but we just had to give that anyway.
  2. Update Google Chrome to the latest version by going to Settings > Help > About Google Chrome.
  3. Clear the Google Come cache. You can easily do that by going to Settings > More Tools > Clear Browser Data. When a pop-up menu will show up, select the Advanced tab, check Cookies and other site data and Cached images and files, and clear the cache for good.
  4. Temporarily disable your antivirus software. Some AV software are known to interfer with HTTP requests/responses to apply some security countermeasures against malicious websites and/or suspicious HTTP traffic; if you have a firewall software with IPS or other web-based protections, you can try to temporarily disable them as well. Alternatively, if your AV/FW software supports white lists or exceptions, you can leave them ON and temporarily add the offending URL to these lists.  Please notice the word “temporarily”: you don’t have to get rid of your protection tools, it’s just quick test to see if they are involved in this specific problem in any way.
  5. Clear the Google Chrome DNS Cache.  You can do that by typing chrome://net-internals/#dns in your URL address bar: once the DNS settings page has loaded, click the Clear host cache button to clear it.
  6. Flush the Google Chrome Socket Pools.  You can do that by typing chrome://net-internals/#sockets in your URL address bar: once the DNS settings page has loaded, click the Flush socket pools button to flush them.
  7. Flush and renew the Windows DNS Cache. Open an elevated command prompt (right-click -> run as administrator), then type the following commands, one at a time
    • ipconfig /flushdns
    • ipconfig /renew

Be sure to try these workarounds one at a time: be sure to reload the offending page after each attempt to see if the problem persists.

Conclusion

That’s it, at least for now: we sincerely hope that these workarounds will help you fix the ERR_SPDY_PROTOCOL_ERROR Google Chrome error: happy surfing!

 

About Ryan

IT Project Manager, Web Interface Architect and Lead Developer for many high-traffic web sites & services hosted in Italy and Europe. Since 2010 it's also a lead designer for many App and games for Android, iOS and Windows Phone mobile devices for a number of italian companies. Microsoft MVP for Development Technologies since 2018.

View all posts by Ryan

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.