Hmbown/CodeWhale · error · std::io::Error
plugin identity probe found a reparse point, hard link, or u
Error message
plugin identity probe found a reparse point, hard link, or unexpected object
What it means
Identity probe guard in the Windows plugin path: the opened handle's metadata did not match the expected kind — for files it requires a regular file with exactly one hard link; for directories a real directory — or the reparse-point attribute is set. Any mismatch rejects the plugin component.
Source
Thrown at crates/tui/src/plugins/manifest.rs:1614
| if expect_directory {
FILE_FLAG_BACKUP_SEMANTICS
} else {
0
};
let file = fs::OpenOptions::new()
.access_mode(0)
.share_mode(FILE_SHARE_READ_WRITE_DELETE)
.custom_flags(flags)
.open(path)?;
let metadata = file.metadata()?;
let identity = windows_file_identity(&file)?;
let expected_kind = if expect_directory {
metadata.is_dir()
} else {
metadata.is_file() && identity.links == 1
};
if !expected_kind || identity.attributes & FILE_ATTRIBUTE_REPARSE_POINT != 0 {
return Err(std::io::Error::new(
std::io::ErrorKind::InvalidData,
"plugin identity probe found a reparse point, hard link, or unexpected object",
));
}
Ok(file)
}
#[cfg(windows)]
fn ensure_windows_path_still_opened(path: &Path, opened: &fs::File) -> Result<(), String> {
let after = fs::symlink_metadata(path)
.map_err(|e| format!("failed to re-inspect plugin path after handle open: {e}"))?;
if metadata_is_link_or_reparse(&after) {
return Err("plugin path changed into a reparse point during validation".to_string());
}
let expect_directory = if after.is_dir() {
true
} else if after.is_file() {
falseView on GitHub (pinned to 0c42157ee5)
Solutions
- Install the plugin as plain regular files/directories without links or reparse points.
- Re-install the plugin from its source so components are materialized normally.
- Audit the plugin directory for hard links created by copy tools (e.g. clone-link installs).
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/tui/src/plugins/manifest.rs:1614 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Hmbown/CodeWhale@0c42157ee5 (2026-08-20).
Data as JSON: /api/errors/6c73a7ef5ab1fad8.
Report an issue: GitHub.