diff --git a/apps/mobile/packages/core/lib/src/services/session/v2_session_service.dart b/apps/mobile/packages/core/lib/src/services/session/v2_session_service.dart index 30b7ce94..639f6022 100644 --- a/apps/mobile/packages/core/lib/src/services/session/v2_session_service.dart +++ b/apps/mobile/packages/core/lib/src/services/session/v2_session_service.dart @@ -4,7 +4,9 @@ import 'package:krow_domain/krow_domain.dart'; import '../api_service/api_service.dart'; import '../api_service/endpoints/auth_endpoints.dart'; +import '../api_service/feature_gate.dart'; import '../api_service/mixins/session_handler_mixin.dart'; +import '../device/background_task/background_task_service.dart'; import 'client_session_store.dart'; import 'staff_session_store.dart'; @@ -110,8 +112,16 @@ class V2SessionService with SessionHandlerMixin { debugPrint('[V2SessionService] Error signing out: $e'); rethrow; } finally { + // Cancel all background tasks (geofence tracking, etc.). + try { + await const BackgroundTaskService().cancelAll(); + } catch (e) { + debugPrint('[V2SessionService] Failed to cancel background tasks: $e'); + } + StaffSessionStore.instance.clear(); ClientSessionStore.instance.clear(); + FeatureGate.instance.clearScopes(); handleSignOut(); } }