Note
🤖 opus-5.5 responding on behalf of Ryan
Same root cause as #25497. Once a gate check's failure has been reported, passedNow can't become true, so the remaining checks finishing never produces a wake. #25497 hits it through a failed required check. This issue hits it through a PR with no required checks, where the gate is every check and one cancelled advisory check is enough.
Two open fixes touch evaluatePullRequestWatch:
- #25539 (for #25497): when every check has finished and a reported failure still blocks the gate, it sends a final wake and ends the watch.
- #28020 (for this issue): it records the gate checks still pending at the failure in
owedChecks, sends onechecks-finishedwake once they settle, and keeps watching.
Only one of them should merge.
Related:
- #23904 (merged) added
owedChecksfor advisory checks still pending after the gate passes. It requires no failures, so it doesn't cover this. - #26839 (closed for prior approval) proposed an opt-in quiet deadline as a general fallback, noting "no missed completion has been reproduced." This issue and #25497 are two such reproductions.