jdx/mise · error

cannot onboard this setup repository: history is unavailable

Error message

cannot onboard this setup repository: history is unavailable: {reason}

What it means

Precondition bail in onboard from_git(): the store reports itself unavailable (Store::unavailable returned a reason, e.g. git missing or store initialization failed), so mise cannot probe whether the given URL is a setup repository. The message surfaces the underlying unavailability reason.

Source

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

    // Detect marked repositories without creating persistent tracking state
    // for users of the released, ordinary --adopt workflow.
    let probe_dir = tempfile::tempdir()?;
    let store = Store::open_in(probe_dir.path())?;
    if let Some(reason) = store.unavailable() {
        bail!("cannot determine whether {url} is a setup repository: {reason}");
    }
    let repo = store
        .repo()
        .ok_or_else(|| eyre::eyre!("probing a setup repository requires git"))?;
    let Some(branch) = default_branch(&Remote::new(repo, url))? else {
        return Ok(None);
    };
    if !matches!(probe(&store, url, &branch)?, RepoState::Marked(_)) {
        return Ok(None);
    }
    let store = Store::open()?;
    if let Some(reason) = store.unavailable() {
        bail!("cannot onboard this setup repository: history is unavailable: {reason}");
    }
    refuse_other_connection(&store, url, &branch)?;
    let outcome = run(
        &store,
        &Onboarding {
            fetch_from: url.to_string(),
            origin: url.to_string(),
            branch,
            yes,
            dry_run,
        },
    )
    .await?;
    Ok(Some(outcome))
}

/// The branch a fresh machine takes: the repository's default branch (its
/// `HEAD`), else `main`, else `master`, else the first head; `None` when the

View on GitHub (pinned to afd2eddd3a)

Solutions

  1. Resolve the reported underlying reason (install git, fix store permissions/state dir)
  2. Verify `git` works on PATH before re-running bootstrap onboarding
  3. Retry onboarding once the history store can open successfully
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/system/history/sync/onboard.rs:158 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/b45686721bcce0c6. Report an issue: GitHub.