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; }