gRPCのJavaクライアントで以下のようなエラーメッセージが出てきたら、おそらく接続先の間違い。普通のHTTPサーバに接続しようとしていると思われる
io.grpc.StatusRuntimeException: INTERNAL: error in frame handler Caused by: java.io.IOException: FRAME_SIZE_ERROR: 4740180
gRPCはフレームと呼ばれるバイナリの塊としてデータが送信される(これはgRPCというよりgRPCがトランスポートに使用しているHTTP/2の仕様)。このフレームの先頭24ビットがフレーム長を示している。
HTTPレスポンスの先頭は HTTP/1.1 404 Not Found
のようなステータスメッセージである。この先頭24ビット(3バイト)の HTT
を数値に変換すると・・・
> parseInt(Buffer.from('HTT').toString('hex'), 16); 4740180
というわけで FRAME_SIZE_ERROR: 4740180
に一致。そしてこの数値がデフォルトで設定されているフレームサイズ上限値よりも大きいためエラーになったものだろうと推測される。よって4MB以上のフレームを受け取れるようにしておくと異なるエラーメッセージになると思われる。