From ae9b45d0d51f9b0e66d637a18e2ff5a2647171d1 Mon Sep 17 00:00:00 2001 From: Jan Michael Auer Date: Mon, 27 Jul 2026 13:24:09 +0200 Subject: [PATCH] fix: Minor improvement in error handling --- objectstore-server/src/observability.rs | 12 +++++++++++- objectstore-service/src/backend/common.rs | 4 +++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/objectstore-server/src/observability.rs b/objectstore-server/src/observability.rs index aa62bb10..8b051e81 100644 --- a/objectstore-server/src/observability.rs +++ b/objectstore-server/src/observability.rs @@ -20,8 +20,18 @@ pub fn init_sentry(config: &Config) -> Option { let config = &config.sentry; let dsn = config.dsn.as_ref()?; + let dsn = match dsn.expose_secret().parse() { + Ok(dsn) => Some(dsn), + Err(error) => { + // Sentry is initialized before the tracing subscriber, so a `warn!` here would be + // dropped. Write to stderr instead to make the misconfiguration visible. + eprintln!("WARN: invalid Sentry DSN, error reporting is disabled: {error}"); + None + } + }; + let guard = sentry::init(sentry::ClientOptions { - dsn: dsn.expose_secret().parse().ok(), + dsn, release: Some(RELEASE.into()), environment: config.environment.clone(), server_name: config.server_name.clone(), diff --git a/objectstore-service/src/backend/common.rs b/objectstore-service/src/backend/common.rs index a8310d41..45b9b4a0 100644 --- a/objectstore-service/src/backend/common.rs +++ b/objectstore-service/src/backend/common.rs @@ -278,5 +278,7 @@ pub(super) fn reqwest_client() -> reqwest::Client { .no_gzip() .no_deflate() .build() - .expect("Client::new()") + // INVARIANT: Building fails only if the TLS backend cannot be initialized, which + // is checked at startup when the rustls crypto provider is installed. + .expect("failed to build backend HTTP client") }