moghtech/komodo · error · anyhow::Error

Failed to get remote url | stdout

Error message

Failed to get remote url | stdout: {} | stderr: {}

What it means

get_remote_url runs `git config --get remote.origin.url` (or equivalent) and, when the subprocess exits non-zero, returns both its stdout and stderr in this error. The output parsing (trimming .git suffix) only happens on success, so this error always reflects a failure of the underlying git query.

Solutions

  1. Check the stdout/stderr in the message for git's diagnostic
  2. Add the remote: `git remote add origin <url>` in the repository
  3. Verify existing remotes with `git remote -v` and rename to origin if needed (`git remote rename <name> origin`)
  4. Confirm the working directory passed to the library is actually the git repository root

Example fix

// before
$ git remote -v   # (empty)
// after
$ git remote add origin git@github.com:owner/repo.git
Defensive patterns

Strategy: validation

Validate before calling

fn has_origin_remote(dir: &Path) -> bool {
  std::process::Command::new("git").current_dir(dir)
    .args(["config", "--get", "remote.origin.url"]).output()
    .map(|o| o.status.success()).unwrap_or(false)
}

Try / catch

match get_remote_url(dir).await {
  Err(e) if e.to_string().starts_with("Failed to get remote url") => {
    log::warn!("no origin remote configured"); None
  }
  other => other.ok(),
}

Prevention

When it happens

Trigger: Calling get_remote_url on a repository that has no 'origin' remote configured, is not a git repository at all, or where the git subprocess fails.

Common situations: Locally initialized repos where `git remote add origin` was never run; repos cloned under a remote name other than 'origin'; CI checkouts that stripped remotes; deploying code whose .git directory was removed.

Understand the failure class

Background: "git command failed": what it means when a tool shells out to git and git exits non-zero — this error's family across 21 libraries.

Related errors


AI-assisted analysis of moghtech/komodo@780ac68b99 (2026-09-08). Data as JSON: /api/errors/88ffca44d9465a6f. Report an issue: GitHub.

Appendix: source

Thrown at lib/git/src/lib.rs:109

  check_installed().await?;
  let output = run_standard_command(
    "git remote show origin",
    CommandOptions::default()
      .path(path)
      .timeout(Duration::from_secs(2)),
  )
  .await;
  if output.success() {
    Ok(
      output
        .stdout
        .trim()
        .strip_suffix(".git")
        .map(str::to_string)
        .unwrap_or(output.stdout),
    )
  } else {
    Err(anyhow!(
      "Failed to get remote url | stdout: {} | stderr: {}",
      output.stdout,
      output.stderr
    ))
  }
}

View on GitHub (pinned to 780ac68b99)