Skip to content

A conflicting PR branch has no CI verdict at all, and nothing says so #517

Description

@blooop

Residue from #305 / PR #505 (2026-08-29), where it happened live.

A push to a PR branch that conflicts with main produces no pull_request run: GitHub builds those runs against the merge ref, and a conflicting branch has none. Not a failing run, not a pending run, nothing — so the PR's most recent check results describe the commit before the push, and a reader (or branch protection, which passes on absence) has no signal that the verdict is stale.

Seen twice today from two directions: PR #505's fix push landed during a CHANGELOG conflict and got no run until the merge commit; PR #506 separately lost its pull_request events to a scoped webhook drop that three re-fires (push, close/reopen, empty commit) did not cure, leaving ci and prek absent rather than failing.

The common shape: branch protection blocks on a check that fails, not on a check that never reported. Worth deciding whether the gate job (or a required check) should be made un-skippable in a way that absence blocks, e.g. requiring the check by name so an unreported check leaves the PR unmergeable.

Context: found while building #305, whose subject is the same class one level down (a suite CI silently does not run).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions