The Release Version.yml workflow’s version-bump job failed while opening the
mechanical bump PR. The job updated all version files and created the local
commit, but git push origin version-bump/<version> was rejected as a
non-fast-forward update.
The workflow assumed gh pr merge --auto --squash --delete-branch always
removed the remote version-bump/<version> branch. In practice, stale
mechanical branches can remain after earlier runs, so a rerun for the same
version tried to push to an existing branch and died before it could create or
reuse the PR.
.github/workflows/Release Version.yml now fetches any existing remote
version-bump/<version> ref and pushes the regenerated branch with
--force-with-lease, which safely overwrites only the previously-fetched stale
mechanical branch. The workflow also checks for an already-open PR on that head
branch and reuses it instead of blindly running gh pr create again.
Mechanical automation that uses deterministic branch names must be rerun-safe:
always handle pre-existing remote refs and pre-existing PRs explicitly instead
of assuming cleanup already happened. For bot-owned branches, prefer
--force-with-lease over plain --force so a stale branch can be refreshed
without silently clobbering unexpected remote changes.