question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

proxy: stream terminated by RST_STREAM

See original GitHub issue

I’m trying to get a basic example of grpc-web working in my application. Using the HelloWorld service example from the grpc-node library, and the example code from grpc-web/example, I’ve put together what I think should work. The proxy connects to my server…

time="2018-02-27T18:22:42Z" level=info msg="dialing to target with scheme: \"\"" system=system
time="2018-02-27T18:22:42Z" level=info msg="listening for http_tls on: [::]:8443"
time="2018-02-27T18:22:42Z" level=info msg="ccResolverWrapper: sending new addresses to cc: [{stern-server:9000 0  <nil>}]" system=system
time="2018-02-27T18:22:42Z" level=info msg="ClientConn switching balancer to \"pick_first\"" system=system
time="2018-02-27T18:22:42Z" level=info msg="listening for http on: [::]:8080"
time="2018-02-27T18:22:42Z" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc42016e370, CONNECTING" system=system
time="2018-02-27T18:22:42Z" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc42016e370, READY" system=system

When I use the client to make the call, it creates a request like this (copied as cURL from Chrome network log):

curl 'https://localhost:8443/helloworld.Greeter/SayHello' -H 'origin: https://localhost:4200' -H 'accept-encoding: gzip, deflate, br' -H 'accept-language: en-US,en;q=0.9' -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.167 Safari/537.36' -H 'content-type: application/grpc-web+proto' -H 'accept: */*' -H 'x-grpc-web: 1' -H 'referer: https://localhost:4200/operations' -H 'authority: localhost:8443' --data-binary $'\x00\x00\x00\x00\x04\n\x02yo' --compressed --insecure

But this is the error message it gives back:

stream terminated by RST_STREAM with error code: INTERNAL_ERROR

That same error shows up in the log output from the proxy itself.

I know my server should work because I created a grpc-node client and it was able to connect just fine.

What could this error indicate? Where should I start looking? I’ve run out of ideas at this point.

Issue Analytics

  • State:closed
  • Created 6 years ago
  • Reactions:1
  • Comments:28 (12 by maintainers)

github_iconTop GitHub Comments

6reactions
MrWinsteadcommented, Mar 16, 2018

Gentlemen, I’ve applied the patch suggested by @hpidcock and things are functional again. See PR 148.

3reactions
johanbrandhorstcommented, Mar 13, 2018

The project is still alive, and FYI the official gRPC team has been working on gRPC-Web for 2 years now without putting out anything, so I wouldn’t hold my breath for that. They’re moving at a glacial pace as far as I can tell, perhaps dragging their feet and waiting for the Streams API to land in browsers.

Read more comments on GitHub >

github_iconTop Results From Across the Web

proxy returns `stream terminated by RST_STREAM with error ...
It feels to me this is an issue with pomerium proxy-authorize connection using the wrong protocol, I haven't had a chance to look...
Read more >
.net - Tendermint, GRPC and C# - Stream terminated by ...
Tendermint, GRPC and C# - Stream terminated by RST_STREAM with error code: PROTOCOL_ERROR ; $"Begin Block Status: {(beginBlock != null ; $" ...
Read more >
1510 (gRPC stream RST_STREAM PROTOCOL_ERROR)
stream terminated by RST_STREAM with error code: PROTOCOL_ERROR. sometimes the code may: INTERNAL_ERROR. The server and the client works without nginx.
Read more >
grpc/grpc - Gitter
I got an issue: (code = Internal desc = stream terminated by RST_STREAM with error code: PROTOCOL_ERROR). I am not able to call...
Read more >
RST_STREAM errors with gRPC - Kubernetes - Linkerd
I get service-to-service communication just fine until I restart one of my pods, at which point I begin to get “stream terminated by...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found