From cf22ac7e86f3dcf528e3ae591fec1c03090a49f8 Mon Sep 17 00:00:00 2001 From: Chad Date: Fri, 7 Aug 2026 15:45:47 -0500 Subject: [PATCH] fix(caretaker): clear lock on NEEDS_HUMAN transition (#28601) --- tools/caretaker-agent/cloudrun/triage-worker/db/issues_store.py | 2 ++ .../cloudrun/triage-worker/tests/test_issues_store.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/tools/caretaker-agent/cloudrun/triage-worker/db/issues_store.py b/tools/caretaker-agent/cloudrun/triage-worker/db/issues_store.py index 33a9a4d965..64cce36d87 100644 --- a/tools/caretaker-agent/cloudrun/triage-worker/db/issues_store.py +++ b/tools/caretaker-agent/cloudrun/triage-worker/db/issues_store.py @@ -74,6 +74,8 @@ class IssuesStore: transaction.update(doc_ref, { "status": "NEEDS_HUMAN", "error": "Max triage attempts (2) exceeded due to prior worker crash or timeout", + "lock.holder": None, + "lock.expires_at": None, "updated_at": firestore.SERVER_TIMESTAMP }) return ClaimAction.NEEDS_HUMAN diff --git a/tools/caretaker-agent/cloudrun/triage-worker/tests/test_issues_store.py b/tools/caretaker-agent/cloudrun/triage-worker/tests/test_issues_store.py index c4e601b82d..3c77fb4d9c 100644 --- a/tools/caretaker-agent/cloudrun/triage-worker/tests/test_issues_store.py +++ b/tools/caretaker-agent/cloudrun/triage-worker/tests/test_issues_store.py @@ -53,6 +53,8 @@ class TestIssuesStore(unittest.TestCase): args[1]["error"], "Max triage attempts (2) exceeded due to prior worker crash or timeout", ) + self.assertIsNone(args[1]["lock.holder"]) + self.assertIsNone(args[1]["lock.expires_at"]) def test_acquire_lock_active_lock_by_other_holder(self): """acquire lock when active lock held by another worker should skip"""