# UNKNOWN: grpc: Status details missing in response trailer

- **ID:** `grpc/status-details-missing`
- **Domain:** grpc
- **Category:** protocol_error
- **Verification:** ai_generated
- **Fix Rate:** 85%

## Root Cause

The server sent a gRPC response without the required `grpc-status-details-bin` trailer, which is expected by the client for richer error handling.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| gRPC Go 1.54.0 | active | — | — |
| gRPC Python 1.50.0 | active | — | — |

## Workarounds

1. **Ensure the server sets the `grpc-status-details-bin` trailer using the `google.rpc.Status` proto. Example in Go: `st := status.New(codes.Internal, "error").WithDetails(&errdetails.RetryInfo{RetryDelay: &duration.Duration{Seconds: 1}})` then `st.Err()`.** (85% success)
   ```
   Ensure the server sets the `grpc-status-details-bin` trailer using the `google.rpc.Status` proto. Example in Go: `st := status.New(codes.Internal, "error").WithDetails(&errdetails.RetryInfo{RetryDelay: &duration.Duration{Seconds: 1}})` then `st.Err()`.
   ```
2. **On the client, fall back to parsing `grpc-status` and `grpc-message` trailers if details are missing.** (75% success)
   ```
   On the client, fall back to parsing `grpc-status` and `grpc-message` trailers if details are missing.
   ```

## Dead Ends

- **** — Retries are unrelated to status details in trailers. (60% fail)
- **** — Status details are only in trailers; headers may not contain the full error info. (80% fail)
- **** — The issue is not version-specific; it's about whether the server populates the trailer. (40% fail)
