Unsupported gRPC frame flag: 1 in response of Cloud Endpoints OpenAPI for Cloud Run with ESPv2

123 Views Asked by At

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".

0

There are 0 best solutions below