Search code examples
node.jsgoogle-chromehttpsspdy

Chrome 54 doesn't get HTTPS response from my site; Chrome 53, Chromium, Firefox, and Safari do


As of about a week ago, my website was working fine. Since Chrome version 54, I can't get it to load. The HTTPS request doesn't get any response and shows a status of "(canceled)". It loads just fine in Chromium, Firefox, Safari, and even Chrome 53. Chrome's developer tools don't give any helpful information - see the image.

The network panel gives no useful information.

Here is what it looks like in Chromium:

The network panel looks normal.

(You'll note that the second image shows the subdomain www. That's because, when the naked domain loads properly, it redirects to the subdomain.)

I tried modifying my server code (Node, Express) to print a message upon receipt of each request, and it doesn't even print when I visit the site in Chrome (54.0.2840.71 (64-bit)). It does print when I visit in Chromium (53.0.2785.143 (64-bit)).

I even tried using a different computer. Same thing - fails in Chrome, succeeds in Safari.

What could make it behave like this? I don't know where to begin troubleshooting this.


Solution

  • I don't really understand the behaviour, but I found a way to fix it in my app. I was using the NPM module spdy in place of Node's built-in https module to serve my app over https. Switching back to the built-in module solved the problem. (It's a simple change - the APIs are compatible.) I don't know whether spdy consistently has this issue in Chrome 54, but I've wasted too much time on this issue, so I will leave further investigation as an exercise for the archaeologist who next digs up this answer.