From c3f0e6712c32f4ee05e3e0fb111b9118c416d6e4 Mon Sep 17 00:00:00 2001 From: Gerald Pinder Date: Thu, 13 Feb 2025 16:45:13 -0500 Subject: [PATCH] chore: Add more context to schema parsing errors --- src/commands/validate/schema_validator.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/commands/validate/schema_validator.rs b/src/commands/validate/schema_validator.rs index 73b9bbc..18ddcba 100644 --- a/src/commands/validate/schema_validator.rs +++ b/src/commands/validate/schema_validator.rs @@ -332,14 +332,19 @@ async fn cache_retrieve(uri: &Uri) -> miette::Result { log::debug!("Retrieving schema from {}", uri.bold().italic()); tokio::spawn(async move { - reqwest::get(&uri) + let response = reqwest::get(&uri) .await .into_diagnostic() - .with_context(|| format!("Failed to retrieve schema from {uri}"))? - .json() - .await + .with_context(|| format!("Failed to retrieve schema from {uri}"))?; + let raw_output = response.bytes().await.into_diagnostic()?; + serde_json::from_slice(&raw_output) .into_diagnostic() - .with_context(|| format!("Failed to parse json from {uri}")) + .with_context(|| { + format!( + "Failed to parse json from {uri}, contents:\n{}", + String::from_utf8_lossy(&raw_output) + ) + }) .inspect(|value| trace!("{}:\n{value}", uri.bold().italic())) }) .await