xai-org/grok-build · error
local-workspace resolve returned no config after ack
Error message
local-workspace resolve returned no config after ack
What it means
`confirm_welcome_local_workspace_ack` finalizes the welcome Local ACK flow: it force-resolves the local workspace config for the given cwd, then stamps and persists the ack. If the forced resolve returns None after the user confirmed the ACK dialog, this error is raised because the confirmation cannot be completed.
Source
Thrown at crates/codegen/xai-grok-pager/src/views/welcome/workspace_mode.rs:452
session_override: Some(Some(cfg)),
warning: None,
})
}
}
}
/// Confirm Local ACK. If `agents_alive`, return oneshot only (keep process stamp).
#[cfg(feature = "local-workspace")]
pub fn confirm_welcome_local_workspace_ack(
cwd: &std::path::Path,
agents_alive: bool,
) -> anyhow::Result<crate::app::session_startup::LocalWorkspaceConfig> {
use crate::app::session_startup::{
resolve_local_workspace_config, set_active_local_workspace, write_local_workspace_ack,
};
let cfg = resolve_local_workspace_config(true, Some(None), None, Some(cwd))?
.ok_or_else(|| anyhow::anyhow!("local-workspace resolve returned no config after ack"))?;
if !agents_alive {
set_active_local_workspace(Some(cfg.clone()))?;
}
write_local_workspace_ack();
log_welcome_ack("confirmed");
Ok(cfg)
}
/// Sync UI selection from a startup-locked stamp (Own/Attach select Local).
#[cfg(feature = "local-workspace")]
pub fn mode_from_active_stamp(
stamp: Option<&crate::app::session_startup::LocalWorkspaceConfig>,
) -> WelcomeWorkspaceMode {
match stamp {
Some(_) => WelcomeWorkspaceMode::LocalWorkspace,
None => WelcomeWorkspaceMode::Sandbox,
}
}View on GitHub (pinned to bc7f02eddd)
Solutions
- Verify the project directory still exists and is accessible, then re-attempt the Local confirmation
- Restart grok from a valid working directory and redo the ACK flow
- Clear stale local-workspace stamp/ack state if the resolver keeps refusing
- If reproducible, inspect `resolve_local_workspace_config` own-mode branch for why it yields None
Example fix
// before
let cfg = resolve_local_workspace_config(true, Some(None), None, Some(cwd))?.ok_or_else(|| anyhow!("local-workspace resolve returned no config after ack"))?;
// after (fail with actionable context)
let cfg = resolve_local_workspace_config(true, Some(None), None, Some(cwd))?.ok_or_else(|| {
anyhow::anyhow!("local-workspace resolve returned no config after ack for cwd={}; check the directory exists", cwd.display())
})?; Defensive patterns
Strategy: try-catch
Validate before calling
// guard before rendering the ACK confirm action
if !std::path::Path::new(&cwd).is_dir() {
// disable/defer ACK confirm; resolver will return None
eprintln!("project dir missing; Local ACK cannot be confirmed now");
} Try / catch
match confirm_welcome_local_workspace_ack(&ctx, cwd).await {
Err(e) if e.to_string().contains("no config after ack") => {
log::warn!("ack confirm failed: {e}; keep dialog open and ask user to re-confirm");
}
other => other?,
} Prevention
- Verify the directory exists before offering the Local ACK confirm action
- Add tests asserting resolve_local_workspace_config(force=true) yields Some for valid cwds
- Handle directory-removal-during-dialog gracefully instead of letting the invariant error propagate
When it happens
Trigger: User clicks/acks the "welcome Local requires ACK confirm" prompt while `resolve_local_workspace_config(true, Some(None), None, Some(cwd))` returns None — same resolver edge cases as error 408 (invalid cwd, resolver state refusing own-mode).
Common situations: Project directory removed or unmounted while the welcome dialog was open; resolver prerequisites not met at confirm time; version regression in session_startup resolver behavior.
Related errors
- local-workspace resolve returned no config after own-mode re
- {LOCAL_WORKSPACE_ACK_REQUIRED}
- no running leader for this environment ({e}). Start a grok s
- session persistence actor stopped before durable append ackn
- workflow persistence actor dropped acknowledgement
AI-assisted analysis of xai-org/grok-build@bc7f02eddd (2026-08-31).
Data as JSON: /api/errors/d4a7ab462912f4ab.
Report an issue: GitHub.