pbakaus/impeccable · error
Could not check for updates: {e}
Error message
Could not check for updates: {e} What it means
The `skills check` command queries the update endpoint to determine whether a newer version is available. If that check itself fails (network error, bad response, parse failure), the error is surfaced as 'Could not check for updates: {e}' and the process exits 1 — distinguishing check failure from the 'updates available' result.
Source
Thrown at crates/skills/src/commands.rs:169
let bundle_dir = bundle::download_and_extract_bundle(&sys)?;
// JS: agentScope 'user' for a home-rooted checkout (d2a9efb9), so
// check() judges agent freshness against the user agent dirs.
let agent_scope = if sys.is_home_dir(&root) { Some(Scope::User) } else { None };
let up_to_date = bundle::is_up_to_date(&sys, &root, &providers, &bundle_dir, None, agent_scope)?;
util::rm_rf(&bundle_dir);
Ok(up_to_date)
})();
match result {
Ok(true) => {
let v = sys.get_skills_version(&root, None);
out(io, &format!("Skills are up to date{}.", version_suffix(&v)));
}
Ok(false) => {
out(io, "Updates available.");
out(io, "Run `npx impeccable update` to update.");
}
Err(e) => {
err(io, &format!("Could not check for updates: {e}"));
return Err(Flow::Exit(1));
}
}
Ok(())
}
fn version_suffix(v: &Option<String>) -> String {
match v {
Some(v) => format!(" (v{v})"),
None => String::new(),
}
}
fn to_version_suffix(v: &Option<String>) -> String {
match v {
Some(v) => format!(" to v{v}"),
None => String::new(),
}View on GitHub (pinned to 2bc2879276)
Solutions
- Verify network access and retry `impeccable skills check` — transient failures resolve on retry.
- Check proxy settings (HTTPS_PROXY) if on a restricted network.
- Test the endpoint manually with curl to see the raw failure.
- Skip the check and update directly: `npx impeccable update` (still needs network), or pin/ignore version checks when offline.
Example fix
// before $ impeccable skills check Could not check for updates: error sending request // after (proxy configured) $ export HTTPS_PROXY=http://proxy:8080 && impeccable skills check You are up to date.
Defensive patterns
Strategy: retry
Validate before calling
curl -fsS -o /dev/null -w '%{http_code}' https://impeccable.style/ && echo ' reachable' || echo 'unreachable' Try / catch
try {
const res = await fetch(updateEndpoint);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
} catch (e) {
// transient network issue: retry with backoff or proceed without the check
} Prevention
- Treat update-check failures as transient and retry once before investigating.
- Set HTTPS_PROXY on restricted networks.
- Run `npx impeccable update` directly when the check endpoint is flaky.
When it happens
Trigger: Running `impeccable skills check` (also reached via token_after_prefix) when the update-check request errors: offline, DNS/proxy failure, request timeout, or a malformed/unexpected response body.
Common situations: No internet connection; firewall or proxy blocking the update endpoint; intermittent network dropping mid-request; update server returning an error page that fails to parse.
Related errors
- Status failed: ${res.status} ${res.statusText}
- Poll failed: ${res.status} ${res.statusText}
- TypeError: fetch failed: {}
- Could not fetch command list from impeccable.style. Check yo
- errBody.error || ('HTTP ' + res.status)
AI-assisted analysis of pbakaus/impeccable@2bc2879276 (2026-09-08).
Data as JSON: /api/errors/4b578d4e88cf8ed8.
Report an issue: GitHub.