diff --git a/apps/labrinth/src/routes/mod.rs b/apps/labrinth/src/routes/mod.rs index 6508792c2f..3dee8f225d 100644 --- a/apps/labrinth/src/routes/mod.rs +++ b/apps/labrinth/src/routes/mod.rs @@ -131,7 +131,7 @@ pub enum ApiError { PasswordHashing(#[from] argon2::password_hash::Error), #[error("{0}")] Mail(#[from] crate::queue::email::MailError), - #[error("Error while rerouting request: {0}")] + #[error("Error while rerouting request: {0:?}")] Reroute(#[from] reqwest::Error), #[error("Unable to read Zip Archive: {0}")] Zip(#[from] zip::result::ZipError), diff --git a/apps/labrinth/src/util/avalara1099.rs b/apps/labrinth/src/util/avalara1099.rs index b861b8b2da..08c4a96ee3 100644 --- a/apps/labrinth/src/util/avalara1099.rs +++ b/apps/labrinth/src/util/avalara1099.rs @@ -105,10 +105,20 @@ pub async fn check_form( let response = request_builder.send().await?; Ok(if response.status().is_success() { - let mut list_wrapper = - response.json::>().await?; - - Ok(list_wrapper.data.pop().map(|data| DataWrapper { data })) + let body = response.text().await?; + let serde_result = + serde_json::from_str::>(&body); + + match serde_result { + Ok(mut list_wrapper) => { + Ok(list_wrapper.data.pop().map(|data| DataWrapper { data })) + } + Err(e) => { + return Err(ApiError::InvalidInput(format!( + "Error parsing avalara1099 response: {e}. Actual response body: {body}" + ))); + } + } } else { Err(response.json().await?) })