Home > Enterprise >  GCS HTTP2_STREAM_ERROR - net::ERR_HTTP2_PROTOCOL_ERROR 200
GCS HTTP2_STREAM_ERROR - net::ERR_HTTP2_PROTOCOL_ERROR 200

Time:06-15

We run some websites that are mapped directly to GCS so website.com has a bucket called website.com and it has all the html pages and static files in it.

Just yesterday we suddenly had a page with significant number of .svg image files ( /- 50 but all very small < 2kb). And also a bunch (lets say 10-15) .png images.

And from those all the .svg files and only 2 of the .png files are failing to load with error: net::ERR_HTTP2_PROTOCOL_ERROR 200.

It works FINE on Firefox and MS Edge browser. ONLY on Chrome it fails.

I have searched and most issues were to do with bad headers or nginx settings but this is directly to GCS buckets so we do not control any of that.

I ran network log via Chrome:

t= 5285 [st=  700]       -HTTP_TRANSACTION_READ_HEADERS
t= 5286 [st=  701]        HTTP_CACHE_WRITE_INFO  [dt=0]
t= 5286 [st=  701]        HTTP_CACHE_WRITE_DATA  [dt=0]
t= 5286 [st=  701]        NETWORK_DELEGATE_HEADERS_RECEIVED  [dt=12]
t= 5289 [st=  704]          HTTP2_STREAM_UPDATE_RECV_WINDOW
                            --> delta = -543
                            --> stream_id = 41
                            --> window_size = 6290913
t= 5298 [st=  713]       -NETWORK_DELEGATE_HEADERS_RECEIVED
t= 5298 [st=  713]     -URL_REQUEST_START_JOB
t= 5298 [st=  713]      URL_REQUEST_DELEGATE_RESPONSE_STARTED  [dt=0]
t= 5298 [st=  713]      HTTP_TRANSACTION_READ_BODY  [dt=0]
t= 5298 [st=  713]        HTTP2_STREAM_UPDATE_RECV_WINDOW
                          --> delta = 543
                          --> stream_id = 41
                          --> window_size = 6291456
t= 5298 [st=  713]     -HTTP_TRANSACTION_READ_BODY
t= 5298 [st=  713]      URL_REQUEST_JOB_FILTERED_BYTES_READ
                        --> byte_count = 543
t= 5298 [st=  713]      HTTP_TRANSACTION_READ_BODY  [dt=60021]
t=65319 [st=60734]        HTTP2_STREAM_ERROR
                          --> description = "Server reset stream."
                          --> net_error = "ERR_HTTP2_PROTOCOL_ERROR"
                          --> stream_id = 41
t=65319 [st=60734]     -HTTP_TRANSACTION_READ_BODY
                        --> net_error = -337 (ERR_HTTP2_PROTOCOL_ERROR)
t=65319 [st=60734]      FAILED
                        --> net_error = -337 (ERR_HTTP2_PROTOCOL_ERROR)
t=65347 [st=60762] -CORS_REQUEST
t=65347 [st=60762] -REQUEST_ALIVE
                    --> net_error = -337 (ERR_HTTP2_PROTOCOL_ERROR)

(there's more but I figured this was the part that matters; if not I can provide whole log).

Any help to solve this mystery would be much appreciated!

Thanks

CodePudding user response:

The images stored in Cloud Storage are fine and are not the source of the Chrome error. The problem is caused by your JavaScript. There is another issue in that your page performs cross-site actions that Chrome is blocking. The two issues might be related.

Ask the developer that wrote the code to debug and correct this problem.

In summary, this is not a Chrome bug. The issue might be caused by Chrome taking action against your page's behavior. The end result is you must fix your application. The same problem exists in Edge 102.

[UPDATE]

The actual problem is the HTTP header x-goog-meta-link. The size of that header (metadata) is 7,461 bytes. The combined HTTP headers exceeded 8 KB which is the cause of the problem.

  • Related