Logic written for gRPC header matching is not correct, the correct approach was to write a customMatcher here https://grpc-ecosystem.github.io/grpc-gateway/docs/mapping/customizing_your_gateway/#mapping-from-http-request-headers-to-grpc-client-metadata , the logic which is implemented right now expects us to prefix our header with grpc-metadata the grpc-gateway docs are not much elaborated that's why this mistake might have happened in first place grpc-ecosystem/grpc-gateway#1244 (comment) .