xai-org/grok-build · error
rehydrate_subagent_worktree task failed: {e}
Error message
rehydrate_subagent_worktree task failed: {e} What it means
Error "rehydrate_subagent_worktree task failed: {e}" thrown in xai-org/grok-build.
Source
Thrown at crates/codegen/xai-grok-workspace/src/worktree/mod.rs:1484
dest: &Path,
source_repo: &Path,
snapshot_ref: &str,
session_id: Option<&str>,
) -> Result<std::path::PathBuf> {
let dest = dest.to_path_buf();
let source_repo = source_repo.to_path_buf();
let snapshot_ref = snapshot_ref.to_string();
let session_id = session_id.map(str::to_owned);
let report = tokio::task::spawn_blocking(move || {
xai_fast_worktree::rehydrate_worktree_from_ref(
&dest,
&source_repo,
&snapshot_ref,
session_id.as_deref(),
)
})
.await
.map_err(|e| anyhow::anyhow!("rehydrate_subagent_worktree task failed: {e}"))??;
Ok(report.worktree_path)
}
/// Snapshot a subagent worktree's working state into `ref_name` and make it
/// durable in `source_repo`, returning the ref name to persist as
/// `snapshot_ref`. Does NOT touch the directory: the caller persists the ref
/// FIRST, then removes the worktree via [`remove_subagent_worktree`], so a
/// failed (or not-yet-persisted) removal never strands a snapshot the resume
/// path can't find.
///
/// Standalone worktrees keep the snapshot in their own `.git`, which is
/// destroyed on removal, so after capturing, the snapshot is transferred into
/// `source_repo` (which survives the worktree) and verified to resolve there
/// before returning `Ok`. The blocking fast-worktree work runs on a blocking
/// thread.
pub async fn snapshot_subagent_worktree(
worktree_path: &Path,
source_repo: &Path,View on GitHub (pinned to bc7f02eddd)
When it happens
Trigger: Thrown at crates/codegen/xai-grok-workspace/src/worktree/mod.rs:1484 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/c67c042a4f597c3a.
Report an issue: GitHub.