diff --git a/apps/api/src/services/awooop_ansible_check_mode_service.py b/apps/api/src/services/awooop_ansible_check_mode_service.py index 332debbfd..e48cf6c35 100644 --- a/apps/api/src/services/awooop_ansible_check_mode_service.py +++ b/apps/api/src/services/awooop_ansible_check_mode_service.py @@ -1784,7 +1784,11 @@ async def run_failed_apply_check_mode_replay_once( AND EXISTS ( SELECT 1 FROM incident_evidence verifier - WHERE verifier.post_execution_state ->> 'apply_op_id' + WHERE verifier.incident_id = coalesce( + apply.incident_id::text, + apply.input ->> 'incident_id' + ) + AND verifier.post_execution_state ->> 'apply_op_id' = apply.op_id::text AND verifier.verification_result = 'failed' ) diff --git a/apps/api/tests/test_awooop_truth_chain_service.py b/apps/api/tests/test_awooop_truth_chain_service.py index 9d40a8506..1a0bd17e5 100644 --- a/apps/api/tests/test_awooop_truth_chain_service.py +++ b/apps/api/tests/test_awooop_truth_chain_service.py @@ -1935,6 +1935,8 @@ def test_failed_apply_retry_replay_is_no_write_and_idempotent() -> None: assert "FOR UPDATE SKIP LOCKED" in source assert "controlled_retry_check_mode_replay" in source assert "build_ansible_check_mode_command" in source + assert "verifier.incident_id = coalesce(" in source + assert "apply.input ->> 'incident_id'" in source assert "controlled_apply_allowed=True" in source assert '"approval_required_before_apply": False' in source assert '"owner_review_required": False' in source