in tchannel-core/src/main/java/com/uber/tchannel/handlers/OutRequest.java [196:229]
protected boolean shouldRetryOnError() {
if (lastError == null) {
return false;
}
String flags = request.getRetryFlags();
if (flags.contains("n")) {
return false;
}
ErrorType errorType = lastError.getErrorType();
switch (errorType) {
case BadRequest:
case Cancelled:
case Unhealthy:
return false;
case Busy:
case Declined:
return true;
case Timeout:
return flags.contains("t");
case NetworkError:
case FatalProtocolError:
case UnexpectedError:
return flags.contains("c");
default:
return false;
}
}