Skip to content

Commit 4850dbc

Browse files
committed
show details for reqwest errors (closes #275)
1 parent 4f2e690 commit 4850dbc

File tree

2 files changed

+50
-26
lines changed

2 files changed

+50
-26
lines changed

Cargo.lock

Lines changed: 35 additions & 23 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/api.rs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use std::{env, fmt, num::NonZeroU8, str::FromStr, time::Duration};
1+
use std::{env, error::Error, fmt, fmt::Write, num::NonZeroU8, str::FromStr, time::Duration};
22

33
use arrayvec::ArrayString;
44
use reqwest::{Client, StatusCode};
@@ -525,8 +525,11 @@ impl ApiActor {
525525
sleep(backoff).await;
526526
} else {
527527
let backoff = self.error_backoff.next();
528-
self.logger
529-
.error(&format!("{err}. Backing off {backoff:?}."));
528+
self.logger.error(&format!(
529+
"{}. Backing off {:?}.",
530+
error_report(&err),
531+
backoff
532+
));
530533
sleep(backoff).await;
531534
}
532535
} else {
@@ -752,3 +755,12 @@ impl ApiActor {
752755
Ok(())
753756
}
754757
}
758+
759+
fn error_report(mut err: &dyn Error) -> String {
760+
let mut report = format!("{}", err);
761+
while let Some(src) = err.source() {
762+
write!(report, " -> {}", src).expect("write error message");
763+
err = src;
764+
}
765+
report
766+
}

0 commit comments

Comments
 (0)