From 94029266e8342b4a0904828739a2123591a6b47f Mon Sep 17 00:00:00 2001 From: Luca Casonato Date: Sun, 30 Nov 2025 16:14:44 +0100 Subject: [PATCH] fix: various improvements to api service Report message for all internal server errors. Increase db pool acquire timeout. --- api/src/api/package.rs | 9 +++++---- api/src/api/scope.rs | 12 ++++++++---- api/src/main.rs | 2 +- api/src/publish.rs | 8 +++++++- 4 files changed, 21 insertions(+), 10 deletions(-) diff --git a/api/src/api/package.rs b/api/src/api/package.rs index 99938750..3a8961eb 100644 --- a/api/src/api/package.rs +++ b/api/src/api/package.rs @@ -943,10 +943,11 @@ pub async fn version_provenance_statements_handler( .await?; if let Some(orama_client) = orama_client { - let (package, _, meta) = db - .get_package(&scope, &package) - .await? - .ok_or(ApiError::InternalServerError)?; + let (package, _, meta) = + db.get_package(&scope, &package).await?.ok_or_else(|| { + error!("package not found after inserting provenance statement"); + ApiError::InternalServerError + })?; orama_client.upsert_package(&package, &meta); } diff --git a/api/src/api/scope.rs b/api/src/api/scope.rs index 83219729..93a87282 100644 --- a/api/src/api/scope.rs +++ b/api/src/api/scope.rs @@ -14,6 +14,7 @@ use hyper::StatusCode; use routerify::Router; use routerify::ext::RequestExt; use tracing::Span; +use tracing::error; use tracing::field; use tracing::instrument; @@ -385,10 +386,13 @@ async fn update_member_handler( } }; - let user = db - .get_user_public(scope_member.user_id) - .await? - .ok_or(ApiError::InternalServerError)?; + let user = + db.get_user_public(scope_member.user_id) + .await? + .ok_or_else(|| { + error!("user not found for scope member: {}", scope_member.user_id); + ApiError::InternalServerError + })?; Ok((scope_member, user).into()) } diff --git a/api/src/main.rs b/api/src/main.rs index 861ba02e..1762e727 100644 --- a/api/src/main.rs +++ b/api/src/main.rs @@ -146,7 +146,7 @@ async fn main() { let database = Database::connect( &config.database_url, config.database_pool_size, - Duration::from_secs(5), + Duration::from_secs(15), ) .await .unwrap(); diff --git a/api/src/publish.rs b/api/src/publish.rs index c6561a5f..1a81a5c2 100644 --- a/api/src/publish.rs +++ b/api/src/publish.rs @@ -144,7 +144,13 @@ pub async fn publish_task( &publishing_task.package_name, ) .await? - .ok_or(ApiError::InternalServerError)?; + .ok_or_else(|| { + error!( + "package not found after successful publishing: {}/{}", + &publishing_task.package_scope, &publishing_task.package_name + ); + ApiError::InternalServerError + })?; orama_client.upsert_package(&package, &meta); } return Ok(());