vectordotdev/vector · error
not found
Error message
{} not found What it means
This error is thrown by vdev's release preparation when the VRL changelog should be appended into a release CUE file. Before reading the file, it verifies that `website/cue/reference/releases/<new_vector_version>.cue` exists; if not, it aborts with the path in the message. It means the release CUE document for the version being prepared was never created, so there is nowhere to append the VRL changelog.
Solutions
- Check the exact path in the error and create/restore `website/cue/reference/releases/<version>.cue` (copy structure from a previous release's CUE file).
- Verify `new_vector_version` in the release config/state matches the actual CUE filename (watch for `vX.Y.Z` vs `X.Y.Z` mismatches).
- Pull/rebase from main to pick up the release CUE file if it was added by another maintainer.
- Re-run the earlier release step that scaffolds the CUE file before re-running `vdev release prepare`.
Example fix
// before (file missing) $ vdev release prepare Error: website/cue/reference/releases/0.46.0.cue not found // after: scaffold the file first $ cp website/cue/reference/releases/0.45.0.cue website/cue/reference/releases/0.46.0.cue $ vdev release prepare
Defensive patterns
Strategy: validation
Validate before calling
let cue_path = std::path::Path::new("website/cue/reference/releases").join(format!("{version}.cue"));
if !cue_path.is_file() {
// scaffold from a prior release before invoking the command
anyhow::bail!("missing release CUE file: {}", cue_path.display());
} Prevention
- Always run the release-scaffold step before `vdev release prepare`.
- Verify `new_vector_version` matches the existing CUE filenames exactly before running release automation.
- Keep release branches rebased on main so newly added release files are present.
When it happens
Trigger: Calling generate_release_cue -> append_vrl_changelog_to_release_cue when `website/cue/reference/releases/{new_vector_version}.cue` does not exist on disk, typically because `vdev release prepare` was invoked before the per-version CUE file was generated or committed.
Common situations: Running a Vector release prep on a checkout that is missing the newly scaffolded release notes file; a typo or mismatch in the configured new version string so the expected `{version}.cue` filename differs from what exists; branching from before the release file was added.
Understand the failure class
Background: "File not found" and ENOENT errors: why libraries can't find a file that should exist — this error's family across 50 libraries.
Related errors
- cue fmt exited with
- a record with a next ID must have an event count
- a valid HTTP/1 URI is valid as an HTTP URI
- a validated HTTP endpoint is a valid `http 1` URI
- all json-file keys should be matched
AI-assisted analysis of vectordotdev/vector@0d4ab78a4f (2026-09-16).
Data as JSON: /api/errors/aaa8f5c3db6ddf81.
Report an issue: GitHub.
Appendix: source
Thrown at vdev/src/commands/release/prepare.rs:227
.arg("--label")
.arg("no-changelog")
.current_dir(&self.repo_root)
.status()?;
if !gh_status.success() {
return Err(anyhow!("Failed to create PR with gh CLI"));
}
info!("Successfully created PR against {}", self.release_branch);
Ok(())
}
fn append_vrl_changelog_to_release_cue(&self) -> Result<()> {
debug!("append_vrl_changelog_to_release_cue");
let releases_path = self.repo_root.join("website/cue/reference/releases");
let version = &self.new_vector_version;
let cue_path = releases_path.join(format!("{version}.cue"));
if !cue_path.is_file() {
return Err(anyhow!("{} not found", cue_path.display()));
}
let vrl_changelog = get_vrl_changelog(&self.vrl_version)?;
let vrl_changelog_block = format_vrl_changelog_block(&vrl_changelog);
let original = fs::read_to_string(&cue_path)?;
let updated = insert_block_after_changelog(&original, &vrl_changelog_block);
let tmp_path = cue_path.with_extension("cue.tmp");
fs::write(&tmp_path, &updated)?;
fs::rename(&tmp_path, &cue_path)?;
run_command(&format!("cue fmt {}", cue_path.display()));
debug!("Successfully added VRL changelog to the release cue file.");
Ok(())
}
}
View on GitHub (pinned to 0d4ab78a4f)