diff options
Diffstat (limited to 'melib/src/backends/jmap/connection.rs')
-rw-r--r-- | melib/src/backends/jmap/connection.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/melib/src/backends/jmap/connection.rs b/melib/src/backends/jmap/connection.rs index 02b41b09..56239e47 100644 --- a/melib/src/backends/jmap/connection.rs +++ b/melib/src/backends/jmap/connection.rs @@ -192,7 +192,14 @@ impl JmapConnection { let res_text = res.text().await?; debug!(&res_text); - let mut v: MethodResponse = serde_json::from_str(&res_text).unwrap(); + let mut v: MethodResponse = match serde_json::from_str(&res_text) { + Err(err) => { + let err = MeliError::new(format!("BUG: Could not deserialize {} server JSON response properly, please report this!\nReply from server: {}", &self.server_conf.server_url, &res_text)).set_source(Some(Arc::new(err))).set_kind(ErrorKind::Bug); + *self.store.online_status.lock().await = (Instant::now(), Err(err.clone())); + return Err(err); + } + Ok(s) => s, + }; let changes_response = ChangesResponse::<EmailObject>::try_from(v.method_responses.remove(0))?; if changes_response.new_state == current_state { |