Opa, desculpa a demora pra responder, eu tinha conseguido contornar o problema com uma solução provisória só que mais pra frente no curso o erro voltou a acontecer, minha solução final foi utilizar um try catch, assim como no código abaixo:
Future<void> _send(Transaction transactionCreated, String password, BuildContext context) async {
try {
final Transaction transaction =
await _webClient.save(transactionCreated, password);
_showSuccessfulMessage(transaction, context);
Navigator.pop(context);
}on TimeoutException catch(e){
_showFailureMessage(context, msg: e.message.toString());
}on HttpException catch(e){
_showFailureMessage(context, msg: e.message);
}on Exception catch(e){
_showFailureMessage(context);
}
}
Peguei o código desse fórum aqui