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

  1. Re-launch from a valid existing working directory
  2. Clear any persisted local-workspace stamp/ack state for the grok home and retry
  3. Check `resolve_local_workspace_config` conditions (valid cwd, own-mode path) if you maintain the code
  4. 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

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


AI-assisted analysis of xai-org/grok-build@bc7f02eddd (2026-08-31). Data as JSON: /api/errors/1d9c2ef327fd9ad7. Report an issue: GitHub.