diff --git a/jami-android/app/src/main/java/cx/ring/service/SyncService.kt b/jami-android/app/src/main/java/cx/ring/service/SyncService.kt
index 88f94e3b2779ad57bb7a4a6329077f428281f6a8..7191c2ead2b3107c6ff2c54f65a5cb56197ddf14 100644
--- a/jami-android/app/src/main/java/cx/ring/service/SyncService.kt
+++ b/jami-android/app/src/main/java/cx/ring/service/SyncService.kt
@@ -105,6 +105,17 @@ class SyncService : Service() {
         }
     }
 
+    override fun onTimeout(startId: Int, fgsType: Int) {
+        Log.w(TAG, "onTimeout: startId=$startId, fgsType=$fgsType")
+        try {
+            stopForeground(true)
+            stopSelf()
+        } catch (ignored: IllegalStateException) {
+        }
+        notification = null
+        serviceUsers = 0
+    }
+
     override fun onBind(intent: Intent): IBinder? = null
 
     companion object {
diff --git a/jami-android/app/src/main/java/cx/ring/services/DataTransferService.kt b/jami-android/app/src/main/java/cx/ring/services/DataTransferService.kt
index 524fafe328f2e9ab47fe9831ecbabdf4b446efd2..b763486e29d0959a0405c1055c6b08ec4b9ec4e1 100644
--- a/jami-android/app/src/main/java/cx/ring/services/DataTransferService.kt
+++ b/jami-android/app/src/main/java/cx/ring/services/DataTransferService.kt
@@ -109,6 +109,14 @@ class DataTransferService : Service() {
         super.onCreate()
     }
 
+    override fun onTimeout(startId: Int, fgsType: Int) {
+        try {
+            stopForeground(true)
+            stopSelf()
+        } catch (ignored: IllegalStateException) {
+        }
+    }
+
     override fun onDestroy() {
         Log.d(TAG, "OnDestroy(), DataTransferService has been destroyed")
         super.onDestroy()