diff --git a/lib/api/concrexit_api_repository.dart b/lib/api/concrexit_api_repository.dart index 3a5afcbc5..a7f3a3f32 100644 --- a/lib/api/concrexit_api_repository.dart +++ b/lib/api/concrexit_api_repository.dart @@ -37,7 +37,15 @@ class LoggingClient extends oauth2.Client { @override Future send(BaseRequest request) async { - final response = await super.send(request); + StreamedResponse response; + try { + response = await super.send(request); + } catch (e) { + if (kDebugMode) { + print('url: ${request.url}, failed: $e'); + } + rethrow; + } if (kDebugMode) { print('url: ${request.url}, response code: ${response.statusCode}'); } diff --git a/lib/blocs/auth_cubit.dart b/lib/blocs/auth_cubit.dart index c0ab7e7c9..d12494db5 100644 --- a/lib/blocs/auth_cubit.dart +++ b/lib/blocs/auth_cubit.dart @@ -145,10 +145,13 @@ class AuthCubit extends Cubit { ), ); }, - httpClient: SentryHttpClient(failedRequestStatusCodes: [ - SentryStatusCode(400), - SentryStatusCode.range(405, 499), - ]), + httpClient: SentryHttpClient( + failedRequestStatusCodes: [ + SentryStatusCode(400), + SentryStatusCode.range(405, 499), + ], + captureFailedRequests: false, + ), ), config: apiConfig, onLogOut: logOut, diff --git a/lib/blocs/list_cubit.dart b/lib/blocs/list_cubit.dart index bc11df5ed..fdfc37701 100644 --- a/lib/blocs/list_cubit.dart +++ b/lib/blocs/list_cubit.dart @@ -100,11 +100,11 @@ abstract class ListCubit extends Cubit { List>> futuresUp = []; List>> futuresDown = []; for (final source in sources) { + source._nextOffsetUp = 0; + source._nextOffsetDown = 0; + source.isDoneUp = false; + source.isDoneDown = false; try { - source._nextOffsetUp = 0; - source._nextOffsetDown = 0; - source.isDoneUp = false; - source.isDoneDown = false; futuresUp.add(source.moreUp()); futuresDown.add(source.moreDown()); } on ApiException catch (exception) { @@ -115,8 +115,13 @@ abstract class ListCubit extends Cubit { cleanupOldState(); List> resultsUp = []; List> resultsDown = []; - resultsUp = await Future.wait(futuresUp); - resultsDown = await Future.wait(futuresDown); + try { + resultsUp = await Future.wait(futuresUp); + resultsDown = await Future.wait(futuresDown); + } on ApiException catch (exception) { + safeEmit(failure(exception.message)); + return; + } // Discard result if _searchQuery has // changed since the request was made.