# X_DOC_CHANGELOG_UNRELEASED_BREAKING

## Means

`BREAKING —` entries sit under `## [Unreleased]` on a tagged commit

## Typical cause

the release did not promote `[Unreleased]`, so the tag's own section does not hold the migration `wiki/Upgrading.md` sends the reader to. The commit before `release: 6.0.0` was exactly that: the migration as it stood then — five `BREAKING —` entries — under `## [Unreleased]`, `wiki/Upgrading.md` already sending the reader to a `6.0.0` section the file did not yet have, and a human promoting it by hand in the release commit. Only fires where `git tag --points-at HEAD` names a `vX.Y.Z` — between releases `[Unreleased]` is *where* a breaking entry belongs

## Fix

`bun run scripts/release.ts --bump major --dry-run --json` validates the promotion and writes nothing; the same command without `--dry-run` performs it. Promotion is now the only path — the script cannot append

[CLI and verify](/error-codes#cli-and-verify)
