Skip to content
This repository was archived by the owner on Feb 16, 2026. It is now read-only.

Commit d6aabc0

Browse files
authored
fix: io errors nested in hyper request errors not classified as retryable (#295)
1 parent 1efa997 commit d6aabc0

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

src/api.rs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -576,19 +576,6 @@ impl From<reqwest::Error> for ClientError {
576576
Self::Connect(err_msg)
577577
} else if err.is_timeout() {
578578
Self::Timeout(err_msg)
579-
} else if err.is_request() {
580-
if let Some(hyper_err) = source_err::<hyper::Error>(&err) {
581-
let hyper_err_msg = format!("{hyper_err} -> {err_msg}");
582-
if hyper_err.is_incomplete_message() {
583-
Self::ConnectionClosedEarly(hyper_err_msg)
584-
} else if hyper_err.is_canceled() {
585-
Self::RequestCanceled(hyper_err_msg)
586-
} else {
587-
Self::Others(hyper_err_msg)
588-
}
589-
} else {
590-
Self::Others(err_msg)
591-
}
592579
} else if let Some(io_err) = source_err::<std::io::Error>(&err) {
593580
let io_err_msg = format!("{io_err} -> {err_msg}");
594581
if io_err.kind() == std::io::ErrorKind::UnexpectedEof {
@@ -602,6 +589,19 @@ impl From<reqwest::Error> for ClientError {
602589
} else {
603590
Self::Others(io_err_msg)
604591
}
592+
} else if err.is_request() {
593+
if let Some(hyper_err) = source_err::<hyper::Error>(&err) {
594+
let hyper_err_msg = format!("{hyper_err} -> {err_msg}");
595+
if hyper_err.is_incomplete_message() {
596+
Self::ConnectionClosedEarly(hyper_err_msg)
597+
} else if hyper_err.is_canceled() {
598+
Self::RequestCanceled(hyper_err_msg)
599+
} else {
600+
Self::Others(hyper_err_msg)
601+
}
602+
} else {
603+
Self::Others(err_msg)
604+
}
605605
} else {
606606
Self::Others(err_msg)
607607
}

0 commit comments

Comments
 (0)