diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/presencetracing/risk/execution/PresenceTracingWarningTask.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/presencetracing/risk/execution/PresenceTracingWarningTask.kt
index b8b64db0f02b78fc43531ffd539d72e770345d6a..ea7b2eece6db44ee9736e3c964240429d3775a14 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/presencetracing/risk/execution/PresenceTracingWarningTask.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/presencetracing/risk/execution/PresenceTracingWarningTask.kt
@@ -6,6 +6,7 @@ import de.rki.coronawarnapp.coronatest.CoronaTestRepository
 import de.rki.coronawarnapp.exception.ExceptionCategory
 import de.rki.coronawarnapp.exception.reporting.report
 import de.rki.coronawarnapp.presencetracing.checkins.CheckInRepository
+import de.rki.coronawarnapp.presencetracing.checkins.checkout.auto.AutoCheckOut
 import de.rki.coronawarnapp.presencetracing.risk.calculation.CheckInWarningMatcher
 import de.rki.coronawarnapp.presencetracing.risk.calculation.PresenceTracingRiskMapper
 import de.rki.coronawarnapp.presencetracing.risk.storage.PresenceTracingRiskRepository
@@ -34,6 +35,7 @@ class PresenceTracingWarningTask @Inject constructor(
     private val checkInsRepository: CheckInRepository,
     private val presenceTracingRiskMapper: PresenceTracingRiskMapper,
     private val coronaTestRepository: CoronaTestRepository,
+    private val autoCheckOut: AutoCheckOut,
 ) : Task<PresenceTracingWarningTaskProgress, PresenceTracingWarningTask.Result> {
 
     private val internalProgress = ConflatedBroadcastChannel<PresenceTracingWarningTaskProgress>()
@@ -44,6 +46,12 @@ class PresenceTracingWarningTask @Inject constructor(
     override suspend fun run(arguments: Task.Arguments): Result = try {
         Timber.d("Running with arguments=%s", arguments)
 
+        autoCheckOut.apply {
+            Timber.tag(TAG).d("Processing overdue check-outs before risk calculation.")
+            processOverDueCheckouts()
+            refreshAlarm()
+        }
+
         try {
             doWork()
         } catch (e: Exception) {
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/risk/RiskLevelTask.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/risk/RiskLevelTask.kt
index d81f7eff26394e0c622943efb89dde6e84aab444..eaf28fd1f4fa40984ab5e636ad6a5e540136463c 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/risk/RiskLevelTask.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/risk/RiskLevelTask.kt
@@ -13,7 +13,6 @@ import de.rki.coronawarnapp.exception.reporting.report
 import de.rki.coronawarnapp.nearby.ENFClient
 import de.rki.coronawarnapp.nearby.modules.detectiontracker.ExposureDetectionTracker
 import de.rki.coronawarnapp.nearby.modules.detectiontracker.TrackedExposureDetection
-import de.rki.coronawarnapp.presencetracing.checkins.checkout.auto.AutoCheckOut
 import de.rki.coronawarnapp.risk.EwRiskLevelResult.FailureReason
 import de.rki.coronawarnapp.risk.result.EwAggregatedRiskResult
 import de.rki.coronawarnapp.risk.storage.RiskLevelStorage
@@ -48,7 +47,6 @@ class RiskLevelTask @Inject constructor(
     private val keyCacheRepository: KeyCacheRepository,
     private val coronaTestRepository: CoronaTestRepository,
     private val analyticsExposureWindowCollector: AnalyticsExposureWindowCollector,
-    private val autoCheckOut: AutoCheckOut,
 ) : Task<DefaultProgress, EwRiskLevelTaskResult> {
 
     private val internalProgress = ConflatedBroadcastChannel<DefaultProgress>()
@@ -59,12 +57,6 @@ class RiskLevelTask @Inject constructor(
     override suspend fun run(arguments: Task.Arguments): EwRiskLevelTaskResult = try {
         Timber.d("Running with arguments=%s", arguments)
 
-        autoCheckOut.apply {
-            Timber.tag(TAG).d("Processing overdue check-outs before risk calculation.")
-            processOverDueCheckouts()
-            refreshAlarm()
-        }
-
         val configData: ConfigData = appConfigProvider.getAppConfig()
 
         determineRiskLevelResult(configData).also {
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/presencetracing/risk/execution/PresenceTracingWarningTaskTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/presencetracing/risk/execution/PresenceTracingWarningTaskTest.kt
index 79a5518b6b160bcf15755ffd9bceef9234693aeb..98d7ace516554e1496faa5d6e0c784999f0db1c4 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/presencetracing/risk/execution/PresenceTracingWarningTaskTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/presencetracing/risk/execution/PresenceTracingWarningTaskTest.kt
@@ -3,6 +3,7 @@ package de.rki.coronawarnapp.presencetracing.risk.execution
 import de.rki.coronawarnapp.coronatest.CoronaTestRepository
 import de.rki.coronawarnapp.coronatest.type.CoronaTest
 import de.rki.coronawarnapp.presencetracing.checkins.CheckInRepository
+import de.rki.coronawarnapp.presencetracing.checkins.checkout.auto.AutoCheckOut
 import de.rki.coronawarnapp.presencetracing.risk.calculation.CheckInWarningMatcher
 import de.rki.coronawarnapp.presencetracing.risk.calculation.PresenceTracingRiskMapper
 import de.rki.coronawarnapp.presencetracing.risk.calculation.createCheckIn
@@ -45,6 +46,7 @@ class PresenceTracingWarningTaskTest : BaseTest() {
     @MockK lateinit var traceWarningRepository: TraceWarningRepository
     @MockK lateinit var checkInsRepository: CheckInRepository
     @MockK lateinit var presenceTracingRiskMapper: PresenceTracingRiskMapper
+    @MockK lateinit var autoCheckOut: AutoCheckOut
     @MockK lateinit var coronaTestRepository: CoronaTestRepository
 
     private val coronaTests: MutableStateFlow<Set<CoronaTest>> = MutableStateFlow(
@@ -87,6 +89,9 @@ class PresenceTracingWarningTaskTest : BaseTest() {
         }
 
         coEvery { presenceTracingRiskMapper.clearConfig() } just Runs
+
+        coEvery { autoCheckOut.processOverDueCheckouts() } returns emptyList()
+        coEvery { autoCheckOut.refreshAlarm() } returns true
     }
 
     private fun createInstance() = PresenceTracingWarningTask(
@@ -98,6 +103,7 @@ class PresenceTracingWarningTaskTest : BaseTest() {
         checkInsRepository = checkInsRepository,
         presenceTracingRiskMapper = presenceTracingRiskMapper,
         coronaTestRepository = coronaTestRepository,
+        autoCheckOut = autoCheckOut,
     )
 
     @Test
@@ -105,6 +111,9 @@ class PresenceTracingWarningTaskTest : BaseTest() {
         createInstance().run(mockk()) shouldNotBe null
 
         coVerifySequence {
+            autoCheckOut.processOverDueCheckouts()
+            autoCheckOut.refreshAlarm()
+
             syncTool.syncPackages()
             presenceTracingRiskRepository.deleteStaleData()
             checkInsRepository.checkInsWithinRetention
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/RiskLevelTaskTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/RiskLevelTaskTest.kt
index 77e65bd863c06f9f0ae662767e22adf81cd63c3a..b9f84a1809d366028a29df859a2d4129b6e532f6 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/RiskLevelTaskTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/RiskLevelTaskTest.kt
@@ -13,7 +13,6 @@ import de.rki.coronawarnapp.diagnosiskeys.storage.CachedKey
 import de.rki.coronawarnapp.diagnosiskeys.storage.CachedKeyInfo
 import de.rki.coronawarnapp.diagnosiskeys.storage.KeyCacheRepository
 import de.rki.coronawarnapp.nearby.ENFClient
-import de.rki.coronawarnapp.presencetracing.checkins.checkout.auto.AutoCheckOut
 import de.rki.coronawarnapp.risk.result.EwAggregatedRiskResult
 import de.rki.coronawarnapp.risk.storage.RiskLevelStorage
 import de.rki.coronawarnapp.task.Task
@@ -54,7 +53,6 @@ class RiskLevelTaskTest : BaseTest() {
     @MockK lateinit var keyCacheRepository: KeyCacheRepository
     @MockK lateinit var coronaTestRepository: CoronaTestRepository
     @MockK lateinit var analyticsExposureWindowCollector: AnalyticsExposureWindowCollector
-    @MockK lateinit var autoCheckOut: AutoCheckOut
 
     private val arguments: Task.Arguments = object : Task.Arguments {}
 
@@ -95,9 +93,6 @@ class RiskLevelTaskTest : BaseTest() {
         coEvery { keyCacheRepository.getAllCachedKeys() } returns emptyList()
 
         coEvery { riskLevelStorage.storeResult(any()) } just Runs
-
-        coEvery { autoCheckOut.processOverDueCheckouts() } returns emptyList()
-        coEvery { autoCheckOut.refreshAlarm() } returns true
     }
 
     private fun createTask() = RiskLevelTask(
@@ -112,7 +107,6 @@ class RiskLevelTaskTest : BaseTest() {
         keyCacheRepository = keyCacheRepository,
         coronaTestRepository = coronaTestRepository,
         analyticsExposureWindowCollector = analyticsExposureWindowCollector,
-        autoCheckOut = autoCheckOut
     )
 
     @Test