From 6ed8df5f96c80c98d0a3b03e23e77a7edfd76459 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Weinehall?= Date: Fri, 29 May 2020 10:32:00 +0200 Subject: [PATCH] Extend attempted error message parsing to also cover ErrorResponse objects. Fixes errors in e.g. drive3 api not getting passed to delegate error handlers. --- src/mako/api/lib/mbuild.mako | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/mako/api/lib/mbuild.mako b/src/mako/api/lib/mbuild.mako index 03f01f1f9c..f9c07e4198 100644 --- a/src/mako/api/lib/mbuild.mako +++ b/src/mako/api/lib/mbuild.mako @@ -783,9 +783,15 @@ else { if !res.status.is_success() { let mut json_err = String::new(); res.read_to_string(&mut json_err).unwrap(); + + let json_server_error = json::from_str::(&json_err).ok(); + let server_error = json::from_str::(&json_err) + .or_else(|_| json::from_str::(&json_err).map(|r| r.error)) + .ok(); + if let oauth2::Retry::After(d) = dlg.http_failure(&res, - json::from_str(&json_err).ok(), - json::from_str(&json_err).ok()) { + json_server_error, + server_error) { sleep(d); continue; }