[backport] deletegate throwable responses to callback.onFailure