pbakaus/impeccable · error
[impeccable live] resolved app root does not exist: {} (stal
Error message
[impeccable live] resolved app root does not exist: {} (stale roots manifest? re-run the live boot, or pass --target <path>)
What it means
After resolving the live roots manifest, `enter_live_root` checks that the resolved app_root directory actually exists before switching the process cwd into it. When the manifest points at a directory that is gone, it prints this message and exits 1 — the manifest is stale, likely because the app directory was moved, renamed, or deleted after the previous live boot.
Source
Thrown at crates/live/src/roots.rs:503
/// the process must exit with that code (the message is already on stderr);
/// `Ok(None)` is the selection-ambiguity case (stay put).
pub fn enter_live_root(args: &mut Vec<String>, io: &mut Io) -> Result<Option<RootsManifest>, i32> {
let target = match consume_target_arg(args) {
Ok(t) => t,
Err(msg) => {
io.err(&format!("[impeccable live] {}\n", msg));
return Err(1);
}
};
let cwd = io.cwd.to_string_lossy().into_owned();
let resolved = resolve_live_roots(&cwd, target.as_deref(), io);
let Some(manifest) = resolved.manifest else {
return Ok(None);
};
let app_root = manifest.app_root.clone();
if jsp::resolve(&cwd, &[]) != jsp::resolve(&app_root, &[]) {
if !is_dir(&app_root) {
io.err(&format!(
"[impeccable live] resolved app root does not exist: {} (stale roots manifest? re-run the live boot, or pass --target <path>)\n",
app_root
));
return Err(1);
}
io.cwd = std::path::PathBuf::from(&app_root);
}
Ok(Some(manifest))
}
View on GitHub (pinned to 2bc2879276)
Solutions
- Re-run the live boot (`impeccable live`) to regenerate the roots manifest.
- Pass an explicit existing path: `impeccable live --target ./correct/app/path`.
- Delete the stale roots manifest file (in the project where live stored it) and boot live again.
- Verify the app root exists: `ls <app_root>` — if not, fix or move the project back to that path.
Example fix
// before (stale manifest path) impeccable live # resolves app_root ./old-frontend (deleted) // after impeccable live --target ./frontend
Defensive patterns
Strategy: validation
Validate before calling
[ -d ./my-app ] && impeccable live --target ./my-app || echo 'app root missing - re-run live boot from the project'
Prevention
- Re-run the live boot after moving or renaming project directories.
- Pass an explicit --target instead of relying on a possibly stale manifest.
- Delete the roots manifest when project layout changes.
- Avoid reusing manifests across machines or relocated checkouts.
When it happens
Trigger: Running `impeccable live` when a previously written roots manifest references an app_root path that no longer is a directory — directory renamed/moved/deleted, or running from a different machine/checkout that reused the manifest.
Common situations: Renaming a project folder between live sessions; switching git branches that moved the app; deleting a sub-app that an old manifest still references; a CI/copy of the repo carrying a manifest with absolute paths from another location.
Related errors
- ${String(res.status)}
- serve-question: no live question server for that key; the pa
- Note: could not remove live script tag ({first})
- [impeccable live] {msg}
AI-assisted analysis of pbakaus/impeccable@2bc2879276 (2026-09-08).
Data as JSON: /api/errors/52749c59168e2ea5.
Report an issue: GitHub.