xai-org/grok-build · error
local-workspace resolve returned no config after own-mode re
Error message
local-workspace resolve returned no config after own-mode request
What it means
`prepare_welcome_workspace_for_new_session` requests a Local workspace in "own" mode by calling `resolve_local_workspace_config(true, Some(None), None, Some(cwd))`. The resolver is expected to return Some(config) for that forced request; if it returns None the invariant is broken and this error is raised, leaving the app unable to activate the Local workspace.
Source
Thrown at crates/codegen/xai-grok-pager/src/views/welcome/workspace_mode.rs:419
);
Ok(WelcomeWorkspacePrepare::Continue {
session_override: Some(None),
warning: None,
})
}
WelcomeWorkspaceMode::LocalWorkspace => {
if !local_workspace_ack_satisfied() {
tracing::info!(
target: WORKSPACE_MODE_LOG,
event = "welcome_local_ack",
outcome = "await",
"welcome Local requires ACK confirm"
);
return Ok(WelcomeWorkspacePrepare::AwaitAck);
}
let cfg = resolve_local_workspace_config(true, Some(None), None, Some(cwd))?
.ok_or_else(|| {
anyhow::anyhow!(
"local-workspace resolve returned no config after own-mode request"
)
})?;
// Live sessions still read the process stamp, so with agents alive only the one-shot override applies
if !agents_alive {
set_active_local_workspace(Some(cfg.clone()))?;
}
log_welcome_intent_applied(
selection,
startup_locked,
"own_oneshot",
if agents_alive { "kept" } else { "stamped_own" },
);
Ok(WelcomeWorkspacePrepare::Continue {
session_override: Some(Some(cfg)),
warning: None,
})
}View on GitHub (pinned to bc7f02eddd)
Solutions
- Re-launch from a valid existing working directory
- Clear any persisted local-workspace stamp/ack state for the grok home and retry
- Check `resolve_local_workspace_config` conditions (valid cwd, own-mode path) if you maintain the code
- Update grok if this is a known regression
Example fix
// before (invariant violation)
resolve_local_workspace_config(true, Some(None), None, Some(cwd))?.ok_or_else(|| anyhow!("...no config..."))
// after (defensive: log and fall back instead of hard error)
match resolve_local_workspace_config(true, Some(None), None, Some(cwd))? {
Some(cfg) => Ok(cfg),
None => anyhow::bail!("local-workspace resolve failed for cwd={}; is the directory valid?", cwd.display()),
} Defensive patterns
Strategy: try-catch
Validate before calling
// guard before starting the session
if !std::path::Path::new(&cwd).is_dir() {
eprintln!("cwd {:?} is invalid; Local workspace activation will fail", cwd);
} Try / catch
match prepare_welcome_workspace_for_new_session(&ctx).await {
Err(e) if e.to_string().contains("local-workspace resolve") => {
log::warn!("local workspace unavailable: {e}; continuing with default workspace");
}
other => other?,
} Prevention
- Launch grok from a valid, existing working directory
- Keep session_startup resolver invariants covered by tests (force=true must yield Some)
- Avoid deleting/unmounting the project directory while the welcome view is active
When it happens
Trigger: Starting a new session from the welcome view with Local/own-mode selected, when `resolve_local_workspace_config` with force=true returns None — e.g. the cwd is invalid/unavailable or resolver internal state (stamp/env) prevents producing a config despite the forced request.
Common situations: Launching from a deleted or unreadable working directory; environment where the resolver's own-mode prerequisites fail silently; regression in session_startup after a refactor changing resolver semantics.
Related errors
- local-workspace resolve returned no config after ack
- no running leader for this environment ({e}). Start a grok s
- send_with_retry_escaping_pool ran at least one attempt
- just created
- set on the use_leader path
AI-assisted analysis of xai-org/grok-build@bc7f02eddd (2026-08-31).
Data as JSON: /api/errors/1d9c2ef327fd9ad7.
Report an issue: GitHub.