Streaming server error: rpc error: code = Unavailable desc = transport is closing"
08:53 22 Oct 2020

I have a server with gRPC stream. And after a client, who had previously subscribed on that stream, unsubscribing, I'm getting this error rpc error: code = Unavailable desc = transport is closing

After I've enabled more detailed logs, I saw this warning grpc: Server.Serve failed to create ServerTransport: connection error: desc = "transport: http2Server.HandleStreams failed to receive the preface from client: EOF" And I'm getting it a couple times per second. What can be a problem?

Client

stream, err := s.stream.GetStreamClient(metadata.AppendToOutgoingContext(ctx,"key","value"),&sub.StreamRequest{})
for {
   resp, err := stream.Recv()
   if err != nil {
       stream.CloseSend()
       return
}
....
}

Client can also call stream.CloseSend() after some timeout

Server

GetStreamClient(req *sub.StreamRequest, stream pb.StreamClient) error { 
for {
    err := stream.Send()
    if err != nil {
    //log error
    return
    }
  }
} 
go stream grpc