xai-org/grok-build · error

serialize fork params: {e}

Error message

serialize fork params: {e}

What it means

Error "serialize fork params: {e}" thrown in xai-org/grok-build.

Source

Thrown at crates/codegen/xai-grok-pager/src/headless.rs:633

) -> anyhow::Result<OpenedSession> {
    use crate::app::session_startup::{
        effective_fork_new_cwd, ensure_session_id_available, fork_response_error,
        fork_response_new_session_id, fork_session_params, parent_session_is_worktree,
    };
    let launch_cwd_str = launch_cwd.to_string_lossy().into_owned();
    // Match interactive: child lands under the parent session cwd, not the launch cwd.
    let new_cwd_str = effective_fork_new_cwd(&launch_cwd_str, parent_cwd);
    let write_cwd = PathBuf::from(&new_cwd_str);
    if let Some(nid) = new_id {
        ensure_session_id_available(nid, &new_cwd_str)?;
    }
    let parent_is_worktree = parent_session_is_worktree(parent_id, &write_cwd);
    let mut payload = fork_session_params(parent_id, &write_cwd, new_id, parent_is_worktree);
    // Shared helper stamps `fork` for interactive `/fork`
    // `-p` children must stay headless: the load path below never restamps
    payload["sessionKind"] = serde_json::Value::String("headless".into());
    let fork_params = serde_json::value::to_raw_value(&payload)
        .map_err(|e| anyhow::anyhow!("serialize fork params: {e}"))?;
    let req = acp::ExtRequest::new("x.ai/session/fork", fork_params.into());
    let resp = acp_send(req, acp_tx).await?;
    if let Some(err) = fork_response_error(resp.0.get()) {
        anyhow::bail!("fork failed: {err}");
    }
    let child = fork_response_new_session_id(resp.0.get())
        .ok_or_else(|| anyhow::anyhow!("fork response missing newSessionId"))?;
    match open_session(acp_tx, &write_cwd, Some(&child), restore_code).await {
        Ok(opened) => Ok(opened),
        Err(e) => Err(anyhow::anyhow!(
            "fork succeeded as {child} but load failed: {e}"
        )),
    }
}

/// Apply `-m` / effort after session open.
/// Effort is soft-ignored on a non-supporting model (still applying `-m`) but hard-fails on a genuinely unknown token.
async fn apply_headless_model_and_effort(

View on GitHub (pinned to bc7f02eddd)

When it happens

Trigger: Thrown at crates/codegen/xai-grok-pager/src/headless.rs:633 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/d3f53706afd24b1f. Report an issue: GitHub.