xai-org/grok-build · error
No auth credentials found at {}. Run `grok login` first.
Error message
No auth credentials found at {}. Run `grok login` first. What it means
Error "No auth credentials found at {}. Run `grok login` first." thrown in xai-org/grok-build.
Source
Thrown at crates/codegen/xai-grok-workspace/src/hub_auth/mod.rs:101
expires_at: Option<chrono::DateTime<chrono::Utc>>,
}
pub fn default_auth_path() -> anyhow::Result<PathBuf> {
let grok = xai_grok_config::user_grok_home()
.ok_or_else(|| anyhow::anyhow!("no user grok home (set $GROK_HOME or $HOME)"))?;
Ok(grok.join("auth.json"))
}
/// Read the active OIDC entry and its scope key. The key is threaded to the
/// refresh write so rotation updates exactly the entry that was read.
///
/// When several OIDC entries qualify, pick the **latest `expires_at`** — the
/// entry the shell is actively refreshing. The previous first-key selection
/// was alphabetical and could rotate a *different principal's* RT chain than
/// the one the user's sessions use.
fn read_auth_entry(path: &Path) -> anyhow::Result<(String, AuthEntry)> {
if !path.exists() {
anyhow::bail!(
"No auth credentials found at {}. Run `grok login` first.",
path.display()
);
}
let content = std::fs::read_to_string(path)
.map_err(|e| anyhow::anyhow!("failed to read {}: {e}", path.display()))?;
let entries: BTreeMap<String, AuthEntry> = serde_json::from_str(&content)
.map_err(|e| anyhow::anyhow!("failed to parse {}: {e}", path.display()))?;
entries
.into_iter()
.filter(|(_, e)| e.refresh_token.is_some() && e.oidc_issuer.is_some())
// Strictly-greater comparison: ties (including all-`None`) keep the
// first candidate in BTreeMap (alphabetical) order, so single-entry
// and legacy no-`expires_at` files behave exactly as before.
.fold(None::<(String, AuthEntry)>, |best, cand| match best {
Some(b) if cand.1.expires_at <= b.1.expires_at => Some(b),View on GitHub (pinned to bc7f02eddd)
When it happens
Trigger: Thrown at crates/codegen/xai-grok-workspace/src/hub_auth/mod.rs:101 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of xai-org/grok-build@bc7f02eddd (2026-08-31).
Data as JSON: /api/errors/4c7c1072b85de452.
Report an issue: GitHub.