@@ -227,15 +227,19 @@ func invokeClientStream(ctx context.Context, stub grpcdynamic.Stub, md *desc.Met
227227 return fmt .Errorf ("grpc call for %q failed: %v" , md .GetFullyQualifiedName (), err )
228228 }
229229
230- if respHeaders , err := str .Header (); err == nil {
231- handler .OnReceiveHeaders (respHeaders )
230+ if str != nil {
231+ if respHeaders , err := str .Header (); err == nil {
232+ handler .OnReceiveHeaders (respHeaders )
233+ }
232234 }
233235
234236 if stat .Code () == codes .OK {
235237 handler .OnReceiveResponse (resp )
236238 }
237239
238- handler .OnReceiveTrailers (stat , str .Trailer ())
240+ if str != nil {
241+ handler .OnReceiveTrailers (stat , str .Trailer ())
242+ }
239243
240244 return nil
241245}
@@ -334,8 +338,10 @@ func invokeBidi(ctx context.Context, stub grpcdynamic.Stub, md *desc.MethodDescr
334338 }()
335339 }
336340
337- if respHeaders , err := str .Header (); err == nil {
338- handler .OnReceiveHeaders (respHeaders )
341+ if str != nil {
342+ if respHeaders , err := str .Header (); err == nil {
343+ handler .OnReceiveHeaders (respHeaders )
344+ }
339345 }
340346
341347 // Download each response message
@@ -362,7 +368,9 @@ func invokeBidi(ctx context.Context, stub grpcdynamic.Stub, md *desc.MethodDescr
362368 return fmt .Errorf ("grpc call for %q failed: %v" , md .GetFullyQualifiedName (), err )
363369 }
364370
365- handler .OnReceiveTrailers (stat , str .Trailer ())
371+ if str != nil {
372+ handler .OnReceiveTrailers (stat , str .Trailer ())
373+ }
366374
367375 return nil
368376}
0 commit comments