vectordotdev/vector · error
already exists for release . Delete it (or move it aside)…
Error message
{} already exists for release {new_version}. Delete it (or move it aside) and re-run. What it means
The command detected an existing upgrade-guide/highlights file for the target release (found via `find_existing_upgrade_guide` which matches by release version across dated filenames) and aborts to avoid rendering two 'upgrade guide' cards for the same release in the single-page release layout.
Solutions
- Delete or move the existing highlights/upgrade-guide file identified in the message, then re-run.
- If the existing guide is authoritative (hand-authored), keep it and remove whatever would cause regeneration of the highlights, or skip that part of the run.
- Confirm the version argument matches the intended release; a wrong version can collide with an older guide.
Example fix
// before vdev release generate-cue 0.46.0 # fails: 2026-09-14-upgrading-0.45-to-0.46.md exists // after git rm website/content/en/highlights/2026-09-14-upgrading-0.45-to-0.46.md vdev release generate-cue 0.46.0
Defensive patterns
Strategy: validation
Validate before calling
ls website/content/en/highlights/ | grep -- "0.46" || echo 'no guide for this release'
Prevention
- Search the highlights directory for the target version before running generation.
- Coordinate with maintainers who may pre-author upgrade guides by hand.
- Avoid running the command across UTC date boundaries without checking for previously dated guides.
When it happens
Trigger: Running `vdev release generate-cue` with breaking changes when any file in the highlights directory matches `upgrade_guide_filename` for `new_version` — including a guide from a previous UTC day or a maintainer-authored guide dated earlier.
Common situations: Regenerating a release after the highlights file was already committed; a maintainer pre-wrote an upgrade guide by hand for the same version; the run spans a UTC date boundary so the dated filename differs but the version matches.
Understand the failure class
Background: "already exists" / EEXIST / FileAlreadyExistsException: what the 'file already exists' error means and how to fix it — this error's family across 37 libraries.
Related errors
- already exists. Delete it (or move it aside) and re-run.
- Could not find latest addition commit
- Could not find the commit that added
- ` ` failed (exit )
- The specified version
AI-assisted analysis of vectordotdev/vector@0d4ab78a4f (2026-09-16).
Data as JSON: /api/errors/c89f4f1b9f5fe1ae.
Report an issue: GitHub.
Appendix: source
Thrown at vdev/src/commands/release/generate_cue.rs:122
// failure doesn't leave a partial CUE file behind (which would then trip the
// "file already exists" guard on the next run).
let cue_text = render_release_cue(&new_version, &changelog_entries);
let breaking: Vec<&BreakingDetails> = changelog_entries
.iter()
.filter_map(|e| e.breaking_details.as_ref())
.collect();
let highlights_md = if breaking.is_empty() {
None
} else {
// Guard against clobbering an existing upgrade guide for this release. We match on
// the version-suffix rather than the exact `today`-prefixed filename so a partial
// run from a previous UTC day (or a maintainer-authored guide dated earlier) is
// still detected. The single-page release layout would otherwise render two
// "upgrade guide" cards for the same release.
if let Some(existing) =
find_existing_upgrade_guide(&repo_root.join(HIGHLIGHTS_DIR), &new_version)?
{
bail!(
"{} already exists for release {new_version}. Delete it (or move it aside) and re-run.",
existing.display()
);
}
validate_breaking_anchors(&breaking)?;
Some(render_upgrade_guide(&today, &new_version, &breaking))
};
// Everything valid — commit the writes atomically via .tmp + rename.
atomic_write(&cue_path, &cue_text)?;
if let Some(md) = highlights_md {
if let Err(e) = atomic_write(&highlights_path, &md) {
// Highlights write failed after CUE succeeded — roll the CUE back so the next
// attempt doesn't hit the "file already exists" guard.
drop(fs::remove_file(&cue_path));
return Err(e);
}
success!("Wrote {}", highlights_path.display());View on GitHub (pinned to 0d4ab78a4f)