diff --git a/packages/brick_offline_first_with_supabase/lib/src/offline_first_with_supabase_repository.dart b/packages/brick_offline_first_with_supabase/lib/src/offline_first_with_supabase_repository.dart index 1d81df8d..724869d8 100644 --- a/packages/brick_offline_first_with_supabase/lib/src/offline_first_with_supabase_repository.dart +++ b/packages/brick_offline_first_with_supabase/lib/src/offline_first_with_supabase_repository.dart @@ -82,13 +82,17 @@ abstract class OfflineFirstWithSupabaseRepository< return await super.delete(instance, policy: policy, query: query); } on PostgrestException catch (e) { logger.warning('#delete supabase failure: $e'); - if (policy == OfflineFirstDeletePolicy.requireRemote) { throw OfflineFirstException(e); } - - return false; + } on AuthRetryableFetchException catch (e) { + logger.warning('#delete supabase failure: $e'); + if (policy == OfflineFirstDeletePolicy.requireRemote) { + throw OfflineFirstException(e); + } } + + return false; } @override @@ -105,13 +109,17 @@ abstract class OfflineFirstWithSupabaseRepository< ); } on PostgrestException catch (e) { logger.warning('#get supabase failure: $e'); - if (policy == OfflineFirstGetPolicy.awaitRemote) { throw OfflineFirstException(e); } - - return []; + } on AuthRetryableFetchException catch (e) { + logger.warning('#get supabase failure: $e'); + if (policy == OfflineFirstGetPolicy.awaitRemote) { + throw OfflineFirstException(e); + } } + + return []; } @protected @@ -124,6 +132,8 @@ abstract class OfflineFirstWithSupabaseRepository< return await super.hydrate(deserializeSqlite: deserializeSqlite, query: query); } on PostgrestException catch (e) { logger.warning('#hydrate supabase failure: $e'); + } on AuthRetryableFetchException catch (e) { + logger.warning('#hydrate supabase failure: $e'); } return []; @@ -387,13 +397,17 @@ abstract class OfflineFirstWithSupabaseRepository< return await super.upsert(instance, policy: policy, query: query); } on PostgrestException catch (e) { logger.warning('#upsert supabase failure: $e'); - if (policy == OfflineFirstUpsertPolicy.requireRemote) { throw OfflineFirstException(e); } - - return instance; + } on AuthRetryableFetchException catch (e) { + logger.warning('#upsert supabase failure: $e'); + if (policy == OfflineFirstUpsertPolicy.requireRemote) { + throw OfflineFirstException(e); + } } + + return instance; } PostgresChangeFilterType? _compareToFilterParam(Compare compare) {