fix: add more debug logs around http client errors

This commit is contained in:
Ruben Fiszel
2024-06-18 08:54:48 +02:00
parent 29c6d85b0b
commit f2f3333e2d
4 changed files with 24 additions and 15 deletions
+8 -9
View File
@@ -3091,10 +3091,9 @@ pub async fn run_wait_result_job_by_path_get(
if method == http::Method::HEAD {
return Ok(Json(serde_json::json!("")).into_response());
}
let payload_r = run_query
.payload
.map(decode_payload)
.map(|x| x.map_err(|e| Error::InternalErr(e.to_string())));
let payload_r = run_query.payload.map(decode_payload).map(|x| {
x.map_err(|e| Error::InternalErr(format!("Impossible to decode query payload: {e:#?}")))
});
let mut payload_args = if let Some(payload) = payload_r {
payload?
@@ -3169,11 +3168,11 @@ pub async fn run_wait_result_flow_by_path_get(
if method == http::Method::HEAD {
return Ok(Json(serde_json::json!("")).into_response());
}
let payload_r = run_query
.payload
.clone()
.map(decode_payload)
.map(|x| x.map_err(|e| Error::InternalErr(e.to_string())));
let payload_r = run_query.payload.clone().map(decode_payload).map(|x| {
x.map_err(|e| {
error::Error::InternalErr(format!("Impossible to decode query payload: {e:#?}"))
})
});
let mut payload_args = if let Some(payload) = payload_r {
payload?
+5 -1
View File
@@ -52,7 +52,7 @@ pub enum Error {
DatabaseMigration(#[from] MigrateError),
#[error("Non-zero exit status: {0}")]
ExitStatus(i32),
#[error(transparent)]
#[error("Err: {0:?}")]
Anyhow(#[from] anyhow::Error),
#[error("Error: {0:#?}")]
JsonErr(serde_json::Value),
@@ -67,6 +67,10 @@ impl Error {
pub fn alt(&self) -> String {
format!("{:#}", self)
}
pub fn dbg(&self) -> String {
format!("{:?}", self)
}
}
pub fn to_anyhow<T: 'static + std::error::Error + Send + Sync>(e: T) -> anyhow::Error {
+5 -1
View File
@@ -13,6 +13,7 @@ use crate::error::{to_anyhow, Error, Result};
use crate::global_settings::UNIQUE_ID_SETTING;
use crate::server::Smtp;
use crate::DB;
use anyhow::Context;
use git_version::git_version;
use mail_send::mail_builder::MessageBuilder;
use mail_send::SmtpClientBuilder;
@@ -136,7 +137,10 @@ pub async fn http_get_from_hub(
}
}
let response = request.send().await.map_err(to_anyhow)?;
let response = request
.send()
.await
.context(format!("error fetching script at {url} from hub"))?;
Ok(response)
}
+6 -4
View File
@@ -11,7 +11,7 @@ use windmill_common::{
worker::{get_windmill_memory_usage, get_worker_memory_usage, TMP_DIR},
};
use anyhow::Result;
use anyhow::{Context, Result};
use const_format::concatcp;
#[cfg(feature = "prometheus")]
use prometheus::{
@@ -399,8 +399,7 @@ pub struct AuthedClient {
impl AuthedClient {
pub async fn get(&self, url: &str, query: Vec<(&str, String)>) -> anyhow::Result<Response> {
Ok(self
.force_client
self.force_client
.as_ref()
.unwrap_or(&HTTP_CLIENT)
.get(url)
@@ -414,7 +413,10 @@ impl AuthedClient {
reqwest::header::HeaderValue::from_str(&format!("Bearer {}", self.token))?,
)
.send()
.await?)
.await
.context(format!(
"Executing request from authed http client to {url} with query {query:?}",
))
}
pub async fn get_id_token(&self, audience: &str) -> anyhow::Result<String> {