What's the net::ERR_HTTP2_PROTOCOL_ERROR about ?

39,877 views
Skip to first unread message

Tristan Gierczynski

unread,
Oct 3, 2019, 1:05:27 PM10/3/19
to Chromium-dev
Hi everyone,

I'm not sure where to post this so I'll give it a try here.
I'm currently working on a website, which triggers me a net::ERR_HTTP2_PROTOCOL_ERROR 200 error on Google Chrome. I'm not sure exactly what can provoque 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 :
1. I'm accessing the website in HTTPS
2. My Twitter feed integrated via https://publish.twitter.com  isn't loaded at all 
3. I can notice in console the ERR_HTTP2_PROTOCOL_ERROR
4. If I remove the code to load the Twitter feed, the error remains
5. If I access the website in HTTP, the Twitter feed appears and the error disappear 

Google Chrome is the only web browser triggering the error : it works well on both IE 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 isn't triggering the error. 

Thing is the error isn't documented at all. Google search gives me a 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).

Any clue at this point to investigate would be gladly appreciated !
Thanks in advance.
Tristan

Nick Harper

unread,
Oct 3, 2019, 2:49:57 PM10/3/19
to tristan.g...@gmail.com, Chromium-dev
This sounds like an issue with your http server. If you capture a
netlog dump (instructions at
https://dev.chromium.org/for-testers/providing-network-details), that
might provide more detail in debugging what's going on.
> --
> --
> Chromium Developers mailing list: chromi...@chromium.org
> View archives, change email options, or unsubscribe:
> http://groups.google.com/a/chromium.org/group/chromium-dev
> ---
> You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
> To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/1eda3b97-da80-43ba-b032-ec187514e5c4%40chromium.org.

Madhur Bhardwaj

unread,
Oct 25, 2019, 11:58:35 AM10/25/19
to Chromium-dev
Hi,

I'm also facing similar issue on chrome, our angular 6 app run successfully but we face this "err_http2_protocol_error" issue intermittently.  We observed when this error occurred calls to our APIs are also failed. 
can someone please help me to resolve this.


Madhur

Eric Roman

unread,
Oct 28, 2019, 6:48:57 PM10/28/19
to madhur....@gmail.com, net-dev
bcc: chromium-dev

Please see the previous message from Nick

To re-iterate:

There are 8 reasons that error might have happened (search for ERR_HTTP2_PROTOCOL_ERROR on that page)
If you want to know specifically which, capture a NetLog. The resulting log file will have a textual explanation of what triggered the protocol error.
We expect this is a server side issue.
I can help you extract the information if you provide me with a NetLog.

--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.

Olger Mile

unread,
Nov 18, 2019, 12:28:42 PM11/18/19
to Chromium-dev, madhur....@gmail.com, net...@chromium.org
I am having the same issue, and I have attached the NetLog. 
Very much apprechiated if you can help!


On Monday, October 28, 2019 at 11:48:57 PM UTC+1, Eric Roman wrote:
bcc: chromium-dev

Please see the previous message from Nick

To re-iterate:

There are 8 reasons that error might have happened (search for ERR_HTTP2_PROTOCOL_ERROR on that page)
If you want to know specifically which, capture a NetLog. The resulting log file will have a textual explanation of what triggered the protocol error.
We expect this is a server side issue.
I can help you extract the information if you provide me with a NetLog.

On Fri, Oct 25, 2019 at 8:58 AM Madhur Bhardwaj <madhur....@gmail.com> wrote:
Hi,

I'm also facing similar issue on chrome, our angular 6 app run successfully but we face this "err_http2_protocol_error" issue intermittently.  We observed when this error occurred calls to our APIs are also failed. 
can someone please help me to resolve this.


Madhur

--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromi...@chromium.org.
chrome-net-export-log.json

Eric Roman

unread,
Nov 18, 2019, 1:18:49 PM11/18/19
to olge...@yahoo.com, Chromium-dev, madhur....@gmail.com, net-dev
The server sent an invalid header of "access-control-allow‌​-credentials":

t=49885 [st=  45]    HTTP2_SESSION_RECV_INVALID_HEADER
                     --> error = "Invalid character in header name."
                     --> header_name = "%ESCAPED: access-control-allow%E2%80%8C%E2%80%8B-credentials"
                     --> header_value = "true"
t=49885 [st=  45]    HTTP2_SESSION_SEND_RST_STREAM
                     --> description = "Could not parse Spdy Control Frame Header."
                     --> error_code = "1 (PROTOCOL_ERROR)"
                     --> stream_id = 1

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/c984bc90-37fc-4d06-b51c-db9bcb4769a8%40chromium.org.

Olger Mile

unread,
Nov 19, 2019, 12:34:48 PM11/19/19
to Chromium-dev, olge...@yahoo.com, madhur....@gmail.com, net...@chromium.org
Thank you Eric, that was very helpful! 

Keith Brian Tomo

unread,
Nov 22, 2019, 1:04:14 PM11/22/19
to Chromium-dev
Message has been deleted

Nick Harper

unread,
Feb 7, 2020, 8:24:40 AM2/7/20
to hoya...@gmail.com, Chromium-dev
The server serving https://tfnsw-2-1-preprod.pegacloud.net/prweb is sending an invalid HTTP header, which is why there's a ERR_HTTP2_PROTOCOL_ERROR.

t= 1729 [st=  211]    HTTP2_SESSION_RECV_INVALID_HEADER

                      --> error = "Invalid character in header name."
                      --> header_name = "http strict-transport-security"
                      --> header_value = "max-age=expireTime"
t= 1730 [st=  212]    HTTP2_SESSION_SEND_RST_STREAM

                      --> description = "Could not parse Spdy Control Frame Header."
                      --> error_code = "1 (PROTOCOL_ERROR)"
                      --> stream_id = 1


The space in the header name is invalid: RFC 7230 (section 3.2) specifies the format of a header field name, and spaces aren't allowed. That web server is misconfigured.

On Fri, Feb 7, 2020 at 5:29 AM hoyath ali <hoya...@gmail.com> wrote:
Hi, server responds with 200 here is the NetLog


--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/e0d3f6fb-1c83-461d-a871-f7118bb64e7c%40chromium.org.

Nick Harper

unread,
Aug 6, 2020, 6:35:01 PM8/6/20
to Han Vu Lam, Chromium-dev
The server is sending RST_STREAM frames with error code 8 (CANCEL). This seems like a server issue, not a chromium issue.

On Thu, Aug 6, 2020 at 2:40 PM Han Vu Lam <vul...@gmail.com> wrote:
Hi, 
I just faced the error net::ERR_HTTP2_PROTOCOL_ERROR 200 recently. I suspect something wrong with the download stream. The server returns 200 Status code but the request still failed. The server is in a good state, not under high load.
Attaching the log (compressed because the filesize is ~25MB). Failed requests are random. Path of some failed requests in my case are:
/irm/rest/v1.14/ddr-export-configs  
/irm/rest/v1.14/ddr-export-configs 
/irm/rest/v1.14/proxy-sources 
/irm/rest/v1.14/target-apps 
...
Any help/hint about what caused the error is appreciated. 

Regards,
Vu

Nick Harper

unread,
Aug 7, 2020, 2:22:16 PM8/7/20
to Han Vu Lam, Chromium-dev
RST_STREAM can be sent by either endpoint. In this case it was sent by the server, and sent with the error code for CANCEL, meaning the server decided to cancel the stream. If the server were resetting the stream because the client did something wrong, it would have used a different error code. Hence this is a server issue.

On Fri, Aug 7, 2020 at 2:19 AM Han Vu Lam <vul...@gmail.com> wrote:
Hi Nick,
Thanks for your quick reply! Though, I don't quite get how's it a server issue.

Per my understanding, RTS_SREAM is used by client (browser) to abort request. When server receives RTS_STREAM, it will stop sending the data, and so stopping the download for the full response body.
The RST_STREAM frame (type=0x3) allows for immediate termination of a stream. RST_STREAM is sent to request cancellation of a stream or to indicate that an error condition has occurred.

Perhaps some other error actually occurred here with the request?

Regards,
Vu Lam
--
Regards,
Vu Lam

Han Vu Lam

unread,
Aug 7, 2020, 9:58:37 PM8/7/20
to Nick Harper, Chromium-dev
Hi Nick,
Thanks for your quick reply! Though, I don't quite get how's it a server issue.

Per my understanding, RTS_SREAM is used by client (browser) to abort request. When server receives RTS_STREAM, it will stop sending the data, and so stopping the download for the full response body.
The RST_STREAM frame (type=0x3) allows for immediate termination of a stream. RST_STREAM is sent to request cancellation of a stream or to indicate that an error condition has occurred.

Perhaps some other error actually occurred here with the request?

Regards,
Vu Lam


On Fri, Aug 7, 2020 at 5:33 AM Nick Harper <nha...@chromium.org> wrote:


--
Regards,
Vu Lam

Han Vu Lam

unread,
Aug 7, 2020, 10:00:45 PM8/7/20
to Chromium-dev, nha...@chromium.org, Chromium-dev
Hi, 
I just faced the error net::ERR_HTTP2_PROTOCOL_ERROR 200 recently. I suspect something wrong with the download stream. The server returns 200 Status code but the request still failed. The server is in a good state, not under high load.
Attaching the log (compressed because the filesize is ~25MB). Failed requests are random. Path of some failed requests in my case are:
/irm/rest/v1.14/ddr-export-configs  
/irm/rest/v1.14/ddr-export-configs 
/irm/rest/v1.14/proxy-sources 
/irm/rest/v1.14/target-apps 
...
Any help/hint about what caused the error is appreciated. 

Regards,
Vu
On Friday, February 7, 2020 at 8:24:40 PM UTC+7 nha...@chromium.org wrote:
chrome-net-export-log.zip

John Kessenich

unread,
Nov 14, 2020, 1:12:27 AM11/14/20
to Chromium-dev, vul...@gmail.com, nha...@chromium.org, Chromium-dev
Hi All, 

I'm having an issue with this error for a few of the resources on our site. However the error only happens intermittently. We thought it was server memory at first, but could reproduce the error with most of the RAM freed up. I will attach the NetLog.

Thank you,

John

chrome-net-export-log-nokia.json
Reply all
Reply to author
Forward
0 new messages