Skip to content

July 9 incident post-mortem: force-push auto-closed 23 PRs — recovery complete #261

Description

@zeshi-du

On 2026-07-09 at 00:59 UTC, a release-snapshot force-push replaced this repository's main history. GitHub reacted by auto-closing all 23 open community PRs within one second. That was our mistake, not yours — this post explains what happened, what we did about it, and what's different now.

What happened

Our release pipeline used to publish by force-pushing a freshly generated snapshot of main. The v0.3.0 cut did exactly what the (flawed) runbook said — and rewriting the base branch's history breaks every open PR's merge tracking. Once that happens, GitHub cannot reopen those PRs, even after main was restored to the identical pre-incident commit the same day.

The recovery — complete as of July 17

Every one of the 23 closed PRs is accounted for:

As of today, 13 recovered/resubmitted PRs have been merged, several more are approved pending a rebase, and the rest carry detailed review feedback. Nothing was lost.

What's different now

  • Force-pushing main is impossible: branch rulesets now block non-fast-forward pushes and deletions on main, and releases are published append-only.
  • Release tags are ruleset-protected too.
  • A CI issue that showed a false-red gate check on every PR (an actions/github-script Node-24 breakage, unrelated to your PRs) was fixed on July 17 — your PR's next push or re-run will show it green.

If you contributed before July 9

If you had a PR closed by the incident and don't see a successor for it, comment here or reopen from your fork branch — we'll prioritize the review. Sorry again for the disruption, and thank you for building with us.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions