From 082d2ab1bf184cadc10b31e6d8c658bc332c01bf Mon Sep 17 00:00:00 2001 From: Steven Fackler Date: Thu, 17 Apr 2025 09:23:57 -0400 Subject: [PATCH 1/2] Propagate error instance ID from remote errors --- conjure-runtime/src/service/http_error.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/conjure-runtime/src/service/http_error.rs b/conjure-runtime/src/service/http_error.rs index fac306f..8aac225 100644 --- a/conjure-runtime/src/service/http_error.rs +++ b/conjure-runtime/src/service/http_error.rs @@ -16,7 +16,7 @@ use crate::raw::Service; use crate::service::Layer; use crate::{builder, Builder, ServerQos, ServiceError}; use bytes::{BufMut, BytesMut}; -use conjure_error::Error; +use conjure_error::{Error, ErrorType, Internal}; use conjure_serde::json; use futures::StreamExt; use http::header::RETRY_AFTER; @@ -149,9 +149,11 @@ where let e = e.clone(); Error::propagated_service_safe(error, e) } - (Some(_), ServiceError::WrapInNewError) | (None, _) => { - Error::internal_safe(error) + (Some(e), ServiceError::WrapInNewError) => { + let instance_id = e.error_instance_id(); + Error::service_safe(error, Internal::new().with_instance_id(instance_id)) } + (None, _) => Error::internal_safe(error), }; if log_body { @@ -300,7 +302,7 @@ mod test { _ => panic!("expected a service error"), }; assert_eq!(*service.error_code(), ErrorCode::Internal); - assert_ne!( + assert_eq!( service.error_instance_id(), service_error.error_instance_id() ); From c542c226a881d85bad9fe4e2d4c0658e7f3c33fa Mon Sep 17 00:00:00 2001 From: svc-changelog Date: Thu, 17 Apr 2025 13:30:52 +0000 Subject: [PATCH 2/2] Add generated changelog entries --- changelog/@unreleased/pr-235.v2.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 changelog/@unreleased/pr-235.v2.yml diff --git a/changelog/@unreleased/pr-235.v2.yml b/changelog/@unreleased/pr-235.v2.yml new file mode 100644 index 0000000..f2537ca --- /dev/null +++ b/changelog/@unreleased/pr-235.v2.yml @@ -0,0 +1,5 @@ +type: improvement +improvement: + description: The error instance ID of remote errors is now propagated. + links: + - https://github.com/palantir/conjure-rust-runtime/pull/235