pbakaus/impeccable · warning
Could not download the impeccable engine v{version} for {os}
Error message
Could not download the impeccable engine v{version} for {os}-{arch} ({url}): {e}. The launcher fetches it on first run.
What it means
The engine binary download failed for a specific os-arch target. `install_engine_binaries` logs the failure once per version (siblings of the same version are silenced via a cache) and tells you the launcher will retry the fetch on first run, so installation is degraded but not fatal.
Source
Thrown at crates/skills/src/engine_binary.rs:155
match fetched {
Ok(bytes) => {
let written = util::mkdir_p(&jsp::dirname(&dest))
.and_then(|_| util::write_bytes(&dest, &bytes))
.and_then(|_| util::set_executable(&dest));
match written {
Ok(()) => io.out(&format!(
"Installed impeccable engine v{version} ({os}-{arch}) into: {}\n",
sys.format_path_for_display(&dest)
)),
Err(e) => io.err(&format!(
"Could not write the impeccable engine v{version} ({os}-{arch}) into {}: {e}\n",
sys.format_path_for_display(&dest)
)),
}
}
Err(e) => {
if !e.is_empty() {
io.err(&format!(
"Could not download the impeccable engine v{version} for {os}-{arch} ({url}): {e}. The launcher fetches it on first run.\n"
));
// Report once per version, then stay quiet for its siblings.
cache.insert(version.to_string(), Err(String::new()));
}
}
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn asset_naming_matches_launcher() {
assert_eq!(
asset_url(DEFAULT_DOWNLOAD_BASE, "1.2.3", "darwin", "arm64"),View on GitHub (pinned to 2bc2879276)
Solutions
- Check network connectivity and proxy settings (HTTPS_PROXY), then re-run install/update.
- Open the printed {url} in a browser to confirm the release asset exists for your os-arch; if 404, wait for the release or align the pinned version.
- Rely on the documented fallback: run the launcher, which fetches the engine on first run.
- Alternatively build the engine locally and point IMPECCABLE_BIN at it.
Example fix
# before $ impeccable install Could not download the impeccable engine v1.2.3 for linux-x64 (https://.../impeccable-linux-x64): 404 Not Found. # after (local build fallback) $ cargo build --release -p impeccable $ IMPECCABLE_BIN="$PWD/target/release/impeccable" bun run test
Defensive patterns
Strategy: retry
Validate before calling
const url = downloadUrlFor(version, os, arch);
const head = await fetch(url, { method: 'HEAD' });
if (!head.ok) console.warn(`asset missing for ${os}-${arch}: HTTP ${head.status}; launcher will fetch on first run`); Try / catch
try {
await installEngineBinaries(io);
} catch (e) {
console.warn('download failed; falling back to launcher first-run fetch:', e.message);
} Prevention
- Verify the pinned version's release assets exist before rolling out a version bump
- Configure proxy env vars (HTTPS_PROXY) in restricted networks
- Retry installs with backoff on transient network failures
- Use IMPECCABLE_BIN with a local build when offline
When it happens
Trigger: `install` or `update` triggers the download in install_engine_binaries; the HTTP fetch for the pinned version at {url} returns an error or non-success, surfacing as Err(e) with a non-empty error string at crates/skills/src/engine_binary.rs:155.
Common situations: No network / corporate proxy blocking the download host; pinned ENGINE_VERSION asset missing upstream (version not yet released); DNS or TLS failure; 404 after a version bump.
Understand the failure class
Background: 'Something went wrong' / 'Request failed (500)' / 'HTTP error! status: 404' — what failed HTTP requests actually mean and how to find the real cause — this error's family across 28 libraries.
Related errors
- Download failed: {e}
- Status failed: ${res.status} ${res.statusText}
- Poll failed: ${res.status} ${res.statusText}
- Live browser script part missing: ${part.name} (${part.path}
- TypeError: fetch failed: {}
AI-assisted analysis of pbakaus/impeccable@2bc2879276 (2026-09-08).
Data as JSON: /api/errors/825292562ea99e2c.
Report an issue: GitHub.