I have deployed a service in GCP cloud endpoint and in backend calling a GRPC service. In GRPC service I have taken a string type param in proto. When I get big string in response I receive error "Unsupported gRPC frame flag: 1" in response from endpoint service otherwise its giving proper response.
{
"message": "Unsupported gRPC frame flag: 1",
"code": 502
}
Is there any size limit of string in transcoding from GRPC to HTTP ? If I am calling GRPC API from python client then its working fine.
My proto file is -
message ListResponse{
int32 responseCode = 1;
string messageDetail = 2;
}
I have run the following command
python3 -m grpc_tools.protoc \
--include_imports \
--include_source_info \
--proto_path=./proto \
--descriptor_set_out=./endpoint/api_descriptor.pb \
--python_out=./generated_pb2 \
--grpc_python_out=./generated_pb2 \
message.proto msgbody.proto attachment.proto
And my configuration file is as follows api_config.yaml:
type: google.api.Service
config_version: 3
name: CLOUD_RUN_SERVICE_NAME
title: gatewayendpoint for grpc
apis:
- name: com.example.Message
usage:
rules:
- selector: com.example.message.Message.List
allow_unregistered_calls: true
backend:
rules:
- selector: "*"
address: grpc://GRPC_HOST_ADDRESS:50052
protocol: "h2"
For smaller string upto length 20 its giving proper response. When I increase length over 25 characters its giving error "Unsupported gRPC frame flag: 1".