zeroclaw-labs/zeroclaw · error · anyhow::Error
Validation failed after write: {e}
Error message
Validation failed after write: {e} What it means
Error "Validation failed after write: {e}" thrown in zeroclaw-labs/zeroclaw.
Source
Thrown at crates/zeroclaw-runtime/src/skills/improver.rs:108
// Preserve any existing audit trail from the original file.
let audit_trail = extract_audit_trail(&existing);
let final_content = if audit_trail.is_empty() {
format!("{updated}{audit_entry}")
} else {
format!("{updated}\n{audit_trail}{audit_entry}")
};
// Atomic write: temp file → validate → rename.
let temp_path = skill_dir.join(".SKILL.md.tmp");
tokio::fs::write(&temp_path, final_content.as_bytes())
.await
.with_context(|| format!("Failed to write temp file: {}", temp_path.display()))?;
// Validate the temp file is readable and valid.
let written = tokio::fs::read_to_string(&temp_path).await?;
if let Err(e) = validate_skill_content(&written) {
let _ = tokio::fs::remove_file(&temp_path).await;
bail!("Validation failed after write: {e}");
}
// Rename atomically (same filesystem).
tokio::fs::rename(&temp_path, &md_path)
.await
.with_context(|| {
format!(
"Failed to rename {} to {}",
temp_path.display(),
md_path.display()
)
})?;
self.cooldowns.insert(slug.to_string(), Instant::now());
Ok(Some(slug.to_string()))
}
View on GitHub (pinned to 88bb9c8533)
Solutions
- Fix the validation error reported after write and re-run the improver.
When it happens
Trigger: Thrown at crates/zeroclaw-runtime/src/skills/improver.rs:108 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of zeroclaw-labs/zeroclaw@88bb9c8533 (2026-08-23).
Data as JSON: /api/errors/e8226c4e83f662fa.
Report an issue: GitHub.