Rich Error Details
message BadRequest {
message FieldViolation {
string field = 1;
string description = 2;
}
repeated FieldViolation field_violations = 1;
}
message RetryInfo {
google.protobuf.Duration retry_delay = 1;
}
use tonic_types::{StatusExt, ErrorDetails};
let details = ErrorDetails::new()
.add_bad_request_violation("email", "must be a valid email address")
.add_retry_info(Some(std::time::Duration::from_secs(5)));
return Err(Status::with_error_details(Code::InvalidArgument, "validation failed", details)?);