envoyproxy/envoy

Compression and decompression of gRPC through envoy proxy

Open

#41,893 opened on Nov 7, 2025

View on GitHub
 (3 comments) (0 reactions) (0 assignees)C++ (27,997 stars) (5,373 forks)batch import
area/compressionarea/httpbughelp wantedno stalebot

Description

What is the proper way to use Envoy to compress and decompress application/grpc?

Description I am trying to compress and decompress application/grpc through 2 envoy proxies. One handling the compression and one the decompression. However, I find through Wireshark that the Envoy Decompressor filter breaks the gRPC protocol by failing to set the END_STREAM flag on the final DATA frame, which causes the backend server to immediately send a TCP Reset.

A similar issue has been opened since 2019 but not resolved.

Given this issue, what is the most stable and reliable implementation of compression and decompression through Envoy? Is implementing a header mutation filter to remove the trailers the recommended solution?

Contributor guide