save last provider error
This commit is contained in:
parent
917dfc914f
commit
b35ad330c9
@ -1739,7 +1739,7 @@ impl Web3ProxyApp {
|
||||
}).await?
|
||||
} else {
|
||||
let x = timeout(
|
||||
max_wait + Duration::from_millis(10),
|
||||
max_wait + Duration::from_millis(100),
|
||||
self.balanced_rpcs
|
||||
.try_proxy_connection::<_, Arc<RawValue>>(
|
||||
method,
|
||||
|
@ -907,6 +907,8 @@ impl Web3Rpcs {
|
||||
// set error_handler to Save. this might be overridden depending on the request_metadata.authorization
|
||||
let error_handler = Some(RequestErrorHandler::Save);
|
||||
|
||||
let mut last_provider_error = None;
|
||||
|
||||
// TODO: the loop here feels somewhat redundant with the loop in best_available_rpc
|
||||
loop {
|
||||
if let Some(max_wait) = max_wait {
|
||||
@ -969,6 +971,9 @@ impl Web3Rpcs {
|
||||
Ok(x) => x,
|
||||
Err(err) => {
|
||||
warn!(?err, "error from {}", rpc);
|
||||
|
||||
last_provider_error = Some(error);
|
||||
|
||||
continue;
|
||||
}
|
||||
};
|
||||
@ -1119,6 +1124,10 @@ impl Web3Rpcs {
|
||||
return Err(err.into());
|
||||
}
|
||||
|
||||
if let Some(err) = last_provider_error {
|
||||
return Err(err.into());
|
||||
}
|
||||
|
||||
let num_conns = self.len();
|
||||
let num_skipped = skip_rpcs.len();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user