tinyhumansai/openhuman · error

Unsupported auth profile kind: {other}

Error message

Unsupported auth profile kind: {other}

What it means

parse_profile_kind rejects a `kind` string from a stored or submitted profile that is not one of the known variants (e.g. "oauth", "token"). This is a deserialization guard: an unknown kind means either a corrupted store file or a profile written by a newer build with a kind this version does not know.

Source

Thrown at src/openhuman/security/credentials/profiles.rs:1747

/// non-zero, returning a `__TEST_TRANSIENT__` error so `is_transient_fs_error`
/// classifies the failure as retryable. Used by both per-stage consumers in
/// `write_persisted_locked` (test-only).
#[cfg(test)]
fn consume_one(counter: &AtomicUsize) -> Result<()> {
    if counter.load(Ordering::SeqCst) == 0 {
        return Ok(());
    }
    counter.fetch_sub(1, Ordering::SeqCst);
    Err(anyhow::anyhow!(
        "__TEST_TRANSIENT__ injected transient FS failure"
    ))
}

fn parse_profile_kind(value: &str) -> Result<AuthProfileKind> {
    match value {
        "oauth" => Ok(AuthProfileKind::OAuth),
        "token" => Ok(AuthProfileKind::Token),
        other => anyhow::bail!("Unsupported auth profile kind: {other}"),
    }
}

fn profile_kind_to_string(kind: AuthProfileKind) -> &'static str {
    match kind {
        AuthProfileKind::OAuth => "oauth",
        AuthProfileKind::Token => "token",
    }
}

fn parse_optional_datetime(value: Option<&str>) -> Result<Option<DateTime<Utc>>> {
    value.map(parse_datetime).transpose()
}

fn parse_datetime(value: &str) -> Result<DateTime<Utc>> {
    DateTime::parse_from_rfc3339(value)
        .map(|dt| dt.with_timezone(&Utc))
        .with_context(|| format!("Invalid RFC3339 timestamp: {value}"))

View on GitHub (pinned to 7491200858)

Solutions

  1. Correct the kind value in the profiles file to a supported variant.
  2. Upgrade OpenHuman if the profile was written by a newer version with a new kind.
  3. Re-create the affected profile if the store data is corrupted.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/security/credentials/profiles.rs:1747 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17). Data as JSON: /api/errors/18025f0fc11379ff. Report an issue: GitHub.