Что такое net :: ERR_HTTP2_PROTOCOL_ERROR?
В настоящее время я работаю над сайтом, который вызывает net::ERR_HTTP2_PROTOCOL_ERROR 200 ошибку в Google Chrome. Я не уверен, что именно может спровоцировать эту ошибку, я только заметил, что она выскакивает только при доступе к сайту в HTTPS. Я не могу быть на 100% уверен, что это связано, но похоже, что это препятствует правильному выполнению JavaScript.
Например, следующий сценарий происходит:
Я захожу на сайт в HTTPS
Мой канал Twitter, интегрированный через https://publish.twitter.com, вообще не загружается
Я могу заметить в консоли ERR_HTTP2_PROTOCOL_ERROR
Если я удаляю код для загрузки канала Twitter, ошибка остается
Если я захожу на сайт по HTTP, появляется канал Twitter и ошибка исчезает
Мне было интересно, может ли это быть связано с заголовком, возвращаемым сервером, так как в ошибке есть упоминание «200», а страница 404/500 ничего не вызывает.
Дело в том, что ошибка не документирована вообще. Поиск в Google дает мне очень мало результатов. Более того, я заметил, что это появляется в самых последних выпусках Google Chrome; ошибка не появляется на v.64.X, но на v.75 + (независимо от ОС; я работаю на Mac tho).
Любая подсказка на данный момент для расследования будет с благодарностью!
Изменить 2: Результаты дальнейших исследований следующие:
Заголовок Google Chrome (с ошибкой):
Заголовок Firefox (без ошибок):
Изменить 4: Попытка углубиться в инструменты chrome: // net-export / и https://netlog-viewer.appspot.com говорит мне, что запрос заканчивается RST_STREAM:
Что я прочитал в этом другом посте : « В HTTP / 2, если клиент хочет прервать запрос, он отправляет RST_STREAM. Когда сервер получает RST_STREAM, он прекращает отправку кадров DATA клиенту, тем самым останавливая ответ (или загрузка). Соединение все еще может использоваться для других запросов, и запросы / ответы, которые были параллельны тому, который был прерван, могут продолжать прогрессировать. [. ] Возможно, что к тому времени, когда RST_STREAM отправится из клиент на сервер, весь контент запроса находится в пути и прибудет к клиенту, который его отбросит, однако при большом содержании ответа отправка RST_STREAM может иметь хорошие шансы прибыть на сервер раньше, чем весь Содержание ответа отправляется, и, следовательно, будет экономить пропускную способность. «
Описанное поведение такое же, как и то, что я могу наблюдать. Но это будет означать, что виновником является браузер, и тогда я не пойму, почему это происходит на двух идентичных страницах, одна из которых имеет заголовок 200, а другая 404 (то же самое происходит, если я отключаю JS).
Как исправить ERR_SSL_PROTOCOL_ERROR в браузере
При посещений веб-сайтов через браузер Chrome или Яндекс, вы можете столкнуться с сообщением об ошибке «Этот сайт не может обеспечить безопасное соединение» с пояснением «сайт отправил недействительный ответ» и указывающим кодом ERR_SSL_PROTOCOL_ERROR. Ошибка также может сопутствоваться другим сообщением «Ошибка подключения SSL» поясняющее «Не удается создать безопасное соединение с сервером. » и кодом «error 107 (net::ERR_SSL_PROTOCOL_ERROR)«. Это сделано, чтобы пользователи могли посещать в интернете безопасные сайты, владельцам сайтов необходимо интегрировать на сервер надежные сертификаты SSL (Secure Sockets Layer). Если веб-сайт не имеет надежной SSL-сертификации, вы можете столкнуться с ошибкой в браузере.
В большинстве случаев ошибка связана с сервером на котором находится сам веб-сайт. Дело в том, что браузеры начали предупреждать, что сайт находиться на небезопасном протоколе http, и владелец сайта пренебрегает безопасностью пользователей. Может быть так, что на сайте просто слетел SSL сертификат, и владелец сайта не успел его подправить. Стоит учитывать и тот момент, что бывают проблемы, когда SSL сертификат перевыпускается и иногда бывают предупреждающие ошибки для пользователей с безопасностью SSL. Как уже сказано выше, ошибка не по вашей вине. Если сайт работал нормально без ошибки ERR SSL PROTOCOL ERROR, то зайдите позже, может через день или 2.
Исправить ошибку ERR_SSL_PROTOCOL_ERROR в Chrome или Yandex браузере
В первую очередь, посмотрите на адресную строку браузера, если адрес начинается на http и не имеет иконку замка, то этот сайт небезопасен, и вы должны покинуть его в целях своей безопасности. Если сайт начинается на https и имеет иконку замка (это безопасный сайт), и вы получаете ошибку ERR_SSL_PROTOCOL_ERROR, то попробуем исправить данную проблему.
1. Удалить файл Hosts
Файл hosts есть на каждой версии Windows, и он представляет собой текстовый файл, который содержит сопоставление доменных имен и IP-адресов. Иногда вирусное ПО может изменять этот файл, тем самым вызывая различные ошибки. Удаление этого файла, может исправить ошибку ERR_SSL_PROTOCOL_ERROR.
2. Очистить состояния SSL
Когда вы подключаетесь к сайту, ваш ПК запрашивает у веб-сайта сертификат, который проверяется на безопасность. После завершения проверки идет соединения с сайтом, если SSL безопасен. Весь этот процесс занимает много времени, и сертификаты веь-сайтов хранятся на вашем компьютере локально, чтобы при втором подключении к сайту ускорить этот процесс. Эти локальные файлы могут быть повреждены, тем самым вызывать различные ошибки с SSL.
Нажмите Win+R и введите inetcpl.cpl, чтобы быстро открыть свойства интернета. Перейдите во вкладку «Содержание» и нажмите «Очистить SSL«. Нажмите OK, и перезапустите браузер.
3. Отключить QUIC Protocol
QUIC Protocol установить соединение между двумя конечными точками через UDP. Если на одном из них будут проблемы, то появится код ошибки ERR SSL PROTOCOL ERROR в браузере.
Откройте свой браузер и введите в адресную строку chrome://flags/. Далее напишите в поиске Experimental QUIC protocol и справа отключите Disabled. Перезапустите браузер и проверьте решена ли проблема.
4. Настройка даты и времени
Неправильная дата и время могут быть причиной ошибки ERR_SSL_PROTOCOL_ERROR в любых браузерах. Перейдите «Параметры» > «Время и Язык» > «Дата и Время» и установите правильное время, дату и регион, если они не правильны.
What’s the net::ERR_HTTP2_PROTOCOL_ERROR about?
I’m currently working on a website, which triggers a net::ERR_HTTP2_PROTOCOL_ERROR 200 error on Google Chrome. I’m not sure exactly what can provoke this error, I just noticed it pops out only when accessing the website in HTTPS. I can’t be 100% sure it is related, but it looks like it prevents JavaScript to be executed properly.
For instance, the following scenario happens :
I’m accessing the website in HTTPS
My Twitter feed integrated via https://publish.twitter.com isn’t loaded at all
I can notice in the console the ERR_HTTP2_PROTOCOL_ERROR
If I remove the code to load the Twitter feed, the error remains
If I access the website in HTTP, the Twitter feed appears and the error disappears
Google Chrome is the only web browser triggering the error: it works well on both Edge and Firefox. (NB: I tried with Safari, and I have a similar kcferrordomaincfnetwork 303 error)
I was wondering if it could be related to the header returned by the server since there is this ‘200’ mention in the error, and a 404 / 500 page isn’t triggering anything.
Thing is the error isn’t documented at all. Google search gives me very few results. Moreover, I noticed it appears on very recent Google Chrome releases; the error doesn’t pop on v.64.X, but it does on v.75+ (regardless of the OS; I’m working on Mac tho).
Findings from further investigations are the following:
As requested, below is the returned header for the failing ressource, which is the whole web page. Even if the error is triggering on each page having a HTTP header 200, those pages are always loading on client’s browser, but sometimes an element is missing (in my exemple, the external Twitter feed). Every other asset on the Network tab has a success return, except the whole document itself.
Google Chrome header (with error):
Firefox header (without error):
Trying to go deeper with the chrome://net-export/ and https://netlog-viewer.appspot.com tools is telling me the request ends with a RST_STREAM :
For what I read in this other post, «In HTTP/2, if the client wants to abort the request, it sends a RST_STREAM. When the server receives a RST_STREAM, it will stop sending DATA frames to the client, thereby stopping the response (or the download). The connection is still usable for other requests, and requests/responses that were concurrent with the one that has been aborted may continue to progress. [. ] It is possible that by the time the RST_STREAM travels from the client to the server, the whole content of the request is in transit and will arrive to the client, which will discard it. However, for large response contents, sending a RST_STREAM may have a good chance to arrive to the server before the whole response content is sent, and therefore will save bandwidth.«
The described behavior is the same as the one I can observe. But that would mean the browser is the culprit, and then I wouldn’t understand why it happens on two identical pages with one having a 200 header and the other a 404 (same goes if I disable JS).
О чем net::ERR_HTTP2_PROTOCOL_ERROR?
В настоящее время я работаю над веб-сайтом, который вызывает net::ERR_HTTP2_PROTOCOL_ERROR 200 ошибка в Google Chrome. Не знаю точно, что может спровоцировать эту ошибку, просто заметил, что она выскакивает только при доступе к сайту по HTTPS. Я не могу быть на 100% уверен, что это связано, но похоже, что это мешает правильному выполнению javascript.
Например, происходит следующий сценарий:
Я захожу на сайт по HTTPS
Мой канал Twitter, интегрированный через https://publish.twitter.com/, вообще не загружается
Я могу заметить в консоли ERR_HTTP2_PROTOCOL_ERROR
Если я удалю код для загрузки ленты Twitter, ошибка останется
Если я захожу на сайт по протоколу HTTP, появляется лента Twitter и ошибка исчезает.
Мне было интересно, может ли это быть связано с заголовком, возвращаемым сервером, поскольку в ошибке есть упоминание «200», а страница 404 / 500 ничего не запускает.
Дело в том, что ошибка вообще не документирована. Поиск в Google дает очень мало результатов. Более того, я заметил, что он появляется в самых последних выпусках Google Chrome; ошибка не появляется на v.64.X, но появляется на v.75+ (независимо от ОС; я работаю на Mac tho).
Любая подсказка на этом этапе для исследования будет с радостью оценена!
Изменить 2: Результаты дальнейших исследований следующие:
Заголовок Google Chrome (с ошибкой):
Заголовок Firefox (без ошибок):
Изменить 4: Попытка углубиться в инструменты chrome: // net-export / и https://netlog-viewer.appspot.com/ сообщает мне, что запрос заканчивается RST_STREAM:
Я читал в этом посте: » В HTTP/2, если клиент хочет прервать запрос, он отправляет RST_STREAM. Когда сервер получает RST_STREAM, он перестанет отправлять кадры DATA клиенту, тем самым останавливая ответ. (или загрузка). Соединение по-прежнему можно использовать для других запросов, и запросы / ответы, которые были одновременными с тем, который был прерван, могут продолжать выполняться. [. ] Возможно, что к тому времени, когда RST_STREAM перейдет из клиент к серверу, все содержимое запроса находится в пути и будет доставлено клиенту, который его отбросит. Однако для большого содержимого ответа отправка RST_STREAM может иметь хорошие шансы прибыть на сервер до того, как все содержимое ответа отправляется, что позволяет сэкономить трафик «.
question
KB5003637 (and the new KB5004476) gives error «Failed to load resource: net::ERR_HTTP2_PROTOCOL_ERROR» in web browser using Visual Studio 16.10.1. or 16.10.2.
After installing the automatic update KB5003637 3 days ago, building web apps using Visual Studio 16.10.1. or even latest update Visual Studio 16.10.2. produces the error «Failed to load resource: net::ERR_HTTP2_PROTOCOL_ERROR» in web browser (Images, css, etc don’t load properly anymore).
It is clear in my case uninstalling the KB5003637 solves the issue. The only problem is when wanting to update Windows 10 it installs that same update over and over again.
The option to exclude/hide the update isn’t there anymore, so this is very annoying.
Also the new update KB5004476 (which replaced the previous update KB5003637) is causing the same error. When installed I get the exact same errors, uninstalling solves it instantly.
Please advise, something is really wrong with these updates.
UPDATE!
Microsoft finally released a fix that works for me, as you can read here (last post): https://developercommunity.visualstudio.com/t/Failed-to-load-resource:-net::ERR_HTTP2_/1446262?viewtype=all Installing the most recent update KB5004237 solves the problem in my case. No more «Failed to load resource: net::ERR_HTTP2_PROTOCOL_ERROR» errors, no more “System Thread Exception not Handled” error so far too! Yay! 🙂
Thanks in advance!
Kind regards,
Lester De Meyer.
What do you think was affected: the browser or the Web server?
After some more testing it seems it affects the browser Chrome only (As I only use Chrome, like most people do).
In Firefox, Edge and IE it seems I’m not having this issue. It was confusing as I tried so many things and the only solution I still have is uninstalling the KB5003637 or the new version KB5004476. So I guess something is wrong with Chrome after all. For now I will keep the updates uninstalled, I don’t feel like changing my preferred browser.
UPDATE
It is not a Chrome only issue, sorry guys. Saw the same error in Edge this morning too. It took a long while to recreate the problem, while in Chrome I have it every single time. 🙁
Thanks for the quick reply!
Kind regards,
Lester.
19 Answers
Welcome to Microsoft Q&A!
You can refer to this document. We recommend you uninstall the installed updates, pause the update, and wait for the follow-up fix.
If your issue still persists, feel free to let me know.
If the answer is helpful, please click «Accept Answer» and upvote it.
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread
Hi @PengGe-MSFT, (Posting my comment here as I can’t comment your answer too, amazing :))
Thank you for your answer. The updates (KB5003637 and the new KB5004476) are uninstalled at this point, and the error is gone.
But when new other updates from Windows 10 are available, I can’t install them without excluding these particular updates.
This is very annoying. I just can’t pause/hide updates from Windows anymore like it used to be.
Download and installing KB3073930 (wushowhide.diagcab) could do the trick. But it seems it isn’t available for download anymore, at least not via the official Microsoft website. https://support.microsoft.com/en-us/kb/3073930
Uninstalling these updates isn’t the best solution in my opinion, but for now it works.
There is not much I can do but wait for a fix I think.
I was going to comment on the StackOverflow chat but don’t have the reputation. This is definitely not a Chrome-specific error, both my developers and myself have had the same exact issue across Edge and Firefox, including blue screen with SYSTEM_THREAD_EXCEPTION_NOT_HANDLED in http.sys when refreshing quickly in any browser and those failures begin occurring.
I’ve also heard the theory that it’s IIS specific (e.g., IISExpress), which is also incorrect since we host over IIS 10.0.
Even if there was something that was meant to be subsequently changed by browsers or platforms, there is no reason why it’s acceptable that the intermediary behavior would be blue screen crashes.
This ist not chrome releated, but chromium. I suddenly now get the same error in Edge (Chromium Basis) as well. Every day there is at least one bsod (http.sys) when developing in Visual Studio, very annoying.
The same issues appear on my end (both blue screen and HTTP/2 protocol errors) when using Firefox and when just accessing the site without Visual Studio even open. The errors just don’t appear under the Console tab in Firefox, they appear in the Network tab. Blue screen reproducible on my end by just opening Network tab and repeatedly refreshing quickly.
Also, uninstalling the patches resolves the issue, and the http.sys file is updated by those patches. You can find them and related assemblies in the modified files for the patches.
Ah okey, thanks for clarification. In my case I had to uninstall KB5003637 and it worked fine after (at least until now). Haven’t had KB5004476 installed yet. I deactivated Windows Update Service for now until a patch is coming out.













