From 6ba6749db5e575626ac7af51842a32ed0322ec7c Mon Sep 17 00:00:00 2001 From: sergerad Date: Fri, 20 Mar 2026 11:04:36 +1300 Subject: [PATCH] Reclassify grpc errors --- crates/rpc/src/server/mod.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/crates/rpc/src/server/mod.rs b/crates/rpc/src/server/mod.rs index f936315fb..90b0bccd9 100644 --- a/crates/rpc/src/server/mod.rs +++ b/crates/rpc/src/server/mod.rs @@ -11,6 +11,7 @@ use tokio::net::TcpListener; use tokio_stream::wrappers::TcpListenerStream; use tonic_reflection::server; use tonic_web::GrpcWebLayer; +use tower_http::classify::{GrpcCode, GrpcErrorsAsFailures, SharedClassifier}; use tower_http::trace::TraceLayer; use tracing::info; use url::Url; @@ -74,7 +75,17 @@ impl Rpc { .timeout(self.grpc_options.request_timeout) .layer(CatchPanicLayer::custom(catch_panic_layer_fn)) .layer(grpc::connect_info_layer()) - .layer(TraceLayer::new_for_grpc().make_span_with(grpc_trace_fn)) + .layer( + TraceLayer::new(SharedClassifier::new( + GrpcErrorsAsFailures::new() + .with_success(GrpcCode::InvalidArgument) + .with_success(GrpcCode::NotFound) + .with_success(GrpcCode::ResourceExhausted) + .with_success(GrpcCode::Unimplemented) + .with_success(GrpcCode::Unknown), + )) + .make_span_with(grpc_trace_fn), + ) .layer(HealthCheckLayer) .layer(grpc::rate_limit_concurrent_connections(self.grpc_options)) .layer(grpc::rate_limit_per_ip(self.grpc_options)?)