# rpc error: code = Unimplemented desc = method /myservice.MyService/StreamData is a streaming method but the client is using unary call

- **ID:** `go/grpc-unimplemented-streaming-not-supported`
- **Domain:** go
- **Category:** type_error
- **Verification:** ai_generated
- **Fix Rate:** 80%

## Root Cause

The client attempted to call a server-streaming or bidirectional streaming method using a unary RPC stub.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 1.0 | active | — | — |
| 1.1 | active | — | — |

## Workarounds

1. **Use the correct streaming client stub for the method.** (95% success)
   ```
   stream, err := client.StreamData(ctx, &pb.StreamRequest{})
if err != nil { return err }
for {
    resp, err := stream.Recv()
    if err == io.EOF { break }
    if err != nil { return err }
    // process resp
}
   ```
2. **Regenerate protobuf code to ensure proper client stubs are created.** (90% success)
   ```
   protoc --go_out=. --go-grpc_out=. --go-grpc_opt=require_unimplemented_servers=false myservice.proto
   ```

## Dead Ends

- **Use the same stub but with different parameters.** — The stub type is fixed; unary stub cannot handle streaming methods. (100% fail)
- **Ignore the error and treat the response as a single message.** — The server expects a stream; the client must use the correct streaming API. (100% fail)
