# UNIMPLEMENTED: grpc: Decompressor is not installed for grpc-encoding: snappy

- **ID:** `grpc/compression-algorithm-not-supported`
- **Domain:** grpc
- **Category:** encoding_error
- **Error Code:** `GRPC_UNSUPPORTED_COMPRESSION`
- **Verification:** ai_generated
- **Fix Rate:** 90%

## Root Cause

The client sent a message compressed with 'snappy' algorithm, but the server does not have a decompressor registered for that encoding, so it cannot decode the message.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| gRPC-go v1.65.0 | active | — | — |
| gRPC-java v1.64.0 | active | — | — |
| C-core v1.65.0 | active | — | — |

## Workarounds

1. **On the server, import the snappy package explicitly. In Go: import _ "google.golang.org/grpc/encoding/snappy". Then rebuild the server binary.** (95% success)
   ```
   On the server, import the snappy package explicitly. In Go: import _ "google.golang.org/grpc/encoding/snappy". Then rebuild the server binary.
   ```
2. **On the client, change the compression algorithm to a supported one like gzip or identity: in Go dial option: grpc.WithDefaultCallOptions(grpc.UseCompressor("gzip")).** (85% success)
   ```
   On the client, change the compression algorithm to a supported one like gzip or identity: in Go dial option: grpc.WithDefaultCallOptions(grpc.UseCompressor("gzip")).
   ```
3. **For Java servers, add the dependency: <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-snappy</artifactId> <version>1.64.0</version> </dependency> and it auto-registers.** (90% success)
   ```
   For Java servers, add the dependency: <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-snappy</artifactId> <version>1.64.0</version> </dependency> and it auto-registers.
   ```

## Dead Ends

- **** — Setting environment variable GRPC_GO_COMPRESSION=snappy on the server without importing the snappy package does not register the decompressor; the package must be imported explicitly. (95% fail)
- **** — Disabling compression entirely on the client (grpc.default_compression_algorithm=identity) may break other clients that rely on compression for performance. (70% fail)
