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

  1. Check network connectivity and proxy settings (HTTPS_PROXY), then re-run install/update.
  2. 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.
  3. Rely on the documented fallback: run the launcher, which fetches the engine on first run.
  4. 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

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


AI-assisted analysis of pbakaus/impeccable@2bc2879276 (2026-09-08). Data as JSON: /api/errors/825292562ea99e2c. Report an issue: GitHub.