diff --git a/.changes/updater-request-error.md b/.changes/updater-request-error.md new file mode 100644 index 00000000..a9f579f9 --- /dev/null +++ b/.changes/updater-request-error.md @@ -0,0 +1,6 @@ +--- +updater: patch +updater-js: patch +--- + +Fixed an issue that caused the plugin to emit a `ReleaseNotFound` error instead of a `Reqwest` error when the http request in `check()` failed. diff --git a/plugins/updater/src/updater.rs b/plugins/updater/src/updater.rs index f9209a00..a3e3cb3a 100644 --- a/plugins/updater/src/updater.rs +++ b/plugins/updater/src/updater.rs @@ -383,26 +383,29 @@ impl Updater { .send() .await; - if let Ok(res) = response { - if res.status().is_success() { - // no updates found! - if StatusCode::NO_CONTENT == res.status() { - return Ok(None); - }; - - raw_json = Some(res.json().await?); - match serde_json::from_value::(raw_json.clone().unwrap()) - .map_err(Into::into) - { - Ok(release) => { - last_error = None; - remote_release = Some(release); - // we found a relase, break the loop - break; + match response { + Ok(res) => { + if res.status().is_success() { + // no updates found! + if StatusCode::NO_CONTENT == res.status() { + return Ok(None); + }; + + raw_json = Some(res.json().await?); + match serde_json::from_value::(raw_json.clone().unwrap()) + .map_err(Into::into) + { + Ok(release) => { + last_error = None; + remote_release = Some(release); + // we found a relase, break the loop + break; + } + Err(err) => last_error = Some(err), } - Err(err) => last_error = Some(err), } } + Err(err) => last_error = Some(err.into()), } }