nikivdev/code · error

failed to read token from Keychain: {}

Error message

failed to read token from Keychain: {}

What it means

Error "failed to read token from Keychain: {}" thrown in nikivdev/code.

Source

Thrown at src/env.rs:338

    let output = Command::new("security")
        .args(["find-generic-password", "-a", "flow", "-s", &service, "-w"])
        .output()
        .context("failed to read token from Keychain")?;

    if output.status.success() {
        let token = String::from_utf8_lossy(&output.stdout).trim().to_string();
        if token.is_empty() {
            return Ok(None);
        }
        return Ok(Some(token));
    }

    let stderr = String::from_utf8_lossy(&output.stderr);
    if stderr.contains("could not be found") || stderr.contains("SecKeychainSearchCopyNext") {
        return Ok(None);
    }

    bail!("failed to read token from Keychain: {}", stderr.trim());
}

fn get_keychain_ai_token(api_url: &str) -> Result<Option<String>> {
    if !cfg!(target_os = "macos") {
        return Ok(None);
    }

    let service = keychain_service_ai(api_url);
    let output = Command::new("security")
        .args(["find-generic-password", "-a", "flow", "-s", &service, "-w"])
        .output()
        .context("failed to read AI token from Keychain")?;

    if output.status.success() {
        let token = String::from_utf8_lossy(&output.stdout).trim().to_string();
        if token.is_empty() {
            return Ok(None);
        }

View on GitHub (pinned to a747e741ae)

When it happens

Trigger: Thrown at src/env.rs:338 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of nikivdev/code@a747e741ae (2026-09-01). Data as JSON: /api/errors/30ee19d94a70a28d. Report an issue: GitHub.