diff --git a/pkg/server/rpc.go b/pkg/server/rpc.go index 1e766ad..78f8490 100644 --- a/pkg/server/rpc.go +++ b/pkg/server/rpc.go @@ -266,7 +266,7 @@ func (h *rpcHandlerImpl[RequestType, ResponseType]) sendResponse( res.Error = err.Error() res.Code = string(psrpc.Unknown) } - } else if response != nil { + } else if response.ProtoReflect().IsValid() { b, err := bus.SerializePayload(response) if err != nil { res.Error = err.Error() @@ -274,6 +274,9 @@ func (h *rpcHandlerImpl[RequestType, ResponseType]) sendResponse( } else { res.RawResponse = b } + } else if ir.Multi { + // ignore nil responses from multirpc methods + return nil } return s.bus.Publish(ctx, info.GetResponseChannel(s.Name, ir.ClientId), res)