Skip to content

[Bug]: Release - six version tags have no GitHub Release, and no check detects it #1997

Description

@laurentiu021

Problem

Six version tags exist with no GitHub Release behind them, and each one has a CHANGELOG entry
announcing it. The repository documents releases that were never published.

Tag Tagged CHANGELOG entry
v0.13.6 2026-04-25 yes
v1.7.15 2026-05-22 yes
v1.52.75 2026-07-10 yes
v1.56.7 2026-08-04 yes
v1.65.9 2026-08-14 yes
v1.75.3 2026-08-26 yes

Verified by comparing all 609 version tags against all 603 releases. (A first pass using the default
result limit produced a meaningless list of 400+ "missing" releases; the counts above come from
fetching every release.)

Anyone who follows a tag, or reads the CHANGELOG and goes looking for the matching download, finds
nothing for these six versions.

Why it happens, and why nothing catches it

Tagging and publishing are two separate steps in two separate workflows. auto-release computes the
next version and pushes the tag; the tag then triggers release, which builds and publishes. If the
second step never runs or dies, the tag is already public and the pipeline reports nothing wrong,
because each workflow only ever checks its own step.

CI has a Merged version is tagged job, which confirms the tag appeared. There is no equivalent
check that the release appeared. That is the gap.

Both halves failed today, from different causes:

  1. v1.75.2auto-release computed v1.75.2 correctly, then the tag push was rejected
    server-side with remote: fatal error in commit_refs. The commit and the version bump were on
    main, so main claimed 1.75.2 with no tag and no release.
  2. v1.75.3 — during a GitHub Actions incident (critical, "issue with a database primary"), the
    auto-release job started and was abandoned without completing, and a manually pushed tag then
    produced a release run whose gate job was likewise abandoned, so publishing was skipped.

Both were recoverable by hand once noticed. Noticing was the hard part, and it only happened because
someone was watching the run.

Proposed check

A job that fails when a version tag has no release, and one that fails when the newest CHANGELOG
version has no release. Either can run on a schedule or at the end of the release workflow. The
comparison is two API calls and a set difference, and it must fetch all releases rather than a
default page, which is the trap that made the first pass here useless.

Worth deciding separately: whether the five historical tags get a backfilled release or are left
alone. Backfilling steals the "Latest" badge, which is date-based rather than semver-based, so it
would need --latest re-asserted on the newest release afterwards.

Affected area

.github/workflows/auto-release.yml, .github/workflows/release.yml, .github/workflows/ci.yml.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions