diff --git a/grpc.go b/grpc.go index e3ada84..272719c 100644 --- a/grpc.go +++ b/grpc.go @@ -218,6 +218,12 @@ func (g *grpcClient) stream(ctx context.Context, node *registry.Node, req client st, err := cc.NewStream(newCtx, desc, methodToGRPC(req.Service(), req.Endpoint()), grpcCallOptions...) if err != nil { + // we need to cleanup as we dialled and created a context + // cancel the context + cancel() + // close the connection + cc.Close() + // now return the error return nil, errors.InternalServerError("go.micro.client", fmt.Sprintf("Error creating stream: %v", err)) }