diff --git a/server/src/services/heartbeat.ts b/server/src/services/heartbeat.ts index aef4801fe6c..192cf9048ff 100644 --- a/server/src/services/heartbeat.ts +++ b/server/src/services/heartbeat.ts @@ -5883,8 +5883,10 @@ export function heartbeatService(db: Db, options: HeartbeatServiceOptions = {}) // Fix A (lazy locking): stamp executionRunId now that the run is actually running, // not at queue time. Guard is idempotent — safe if called more than once. - const claimedIssueId = readNonEmptyString(parseObject(claimed.contextSnapshot).issueId); - if (claimedIssueId) { + const claimedContext = parseObject(claimed.contextSnapshot); + const claimedIssueId = readNonEmptyString(claimedContext.issueId); + const claimedWakeReason = readNonEmptyString(claimedContext.wakeReason); + if (claimedIssueId && claimedWakeReason !== "source_scoped_recovery_action") { const claimedAgent = await getAgent(claimed.agentId); await db .update(issues)