jdx/mise · error

could not reuse the fetched setup preview

Error message

could not reuse the fetched setup preview

What it means

Fallback failure in seed_confirmed_fetch: after user consent, mise tried to reuse the already-fetched preview store's git objects to seed the real store (avoiding a re-download) and this reuse failed (e.g. missing repo, fetch-from-local-URL error). The message signals the optimization failed and the caller should fall back to a normal fetch.

Source

Thrown at src/system/history/sync/onboard.rs:363

}

/// Reuse the fully fetched preview after consent, without touching local HEAD
/// or importing preview decisions. The following normal remote fetch still
/// discovers newer commits and recomputes against current local state.
fn seed_confirmed_fetch(store: &Store, preview: &Store) -> Result<()> {
    let _sync = run::lock(store)?;
    let source = preview
        .repo()
        .ok_or_else(|| eyre::eyre!("preview requires git"))?;
    let destination = store
        .repo()
        .ok_or_else(|| eyre::eyre!("setup requires git"))?;
    let url = url::Url::from_file_path(source.dir())
        .map_err(|_| eyre::eyre!("cannot address the preview repository"))?;
    let refspec = format!("+{UPSTREAM_REF}:{UPSTREAM_REF}");
    let copied = destination.network(["fetch", "--no-tags", "--", url.as_str(), &refspec])?;
    if !copied.status.success() {
        bail!("could not reuse the fetched setup preview");
    }
    Ok(())
}

/// Whether this host reaches the repository on its own: with the
/// session's GitHub relay (its `url.<relay>.insteadOf` rewrites travel as
/// `GIT_CONFIG_KEY_n`/`GIT_CONFIG_VALUE_n`) taken out of the environment.
/// Without a relay, whatever works now keeps working.
async fn durable_access(url: &str, branch: &str) -> bool {
    if std::env::var_os("MISE_GITHUB_RELAY_SOCKET").is_none() {
        return true;
    }
    let Some(git) = crate::file::which_spawnable("git") else {
        return true;
    };
    if super::network::validate_url(url).is_err() {
        return false;
    }

View on GitHub (pinned to afd2eddd3a)

Solutions

  1. Retry the operation so the normal remote fetch path runs instead of the seeding shortcut
  2. Check that the preview store's git directory still exists and is readable
  3. If it recurs, investigate git object transfer between the two store repos
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at src/system/history/sync/onboard.rs:363 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09). Data as JSON: /api/errors/7bd41f515d74d7fa. Report an issue: GitHub.