diff --git a/server.go b/server.go index a48b181..86b979c 100644 --- a/server.go +++ b/server.go @@ -576,7 +576,11 @@ func (rt *RpcReturnError) WithCode(code int) *RpcReturnError { } func (rt *RpcReturnError) WithError(err error) *RpcReturnError { - rt.err = err + if err2, ok := err.(*ErrorWithStatus); ok { + rt.WithCode(err2.StatusCode) + } else { + rt.err = err + } return rt }