jdx/mise · error · eyre::Report

cache agent did not return an action lookup response

Error message

cache agent did not return an action lookup response

What it means

Looking up a cached compilation result starts with a FindActionResult request; the protocol guarantees one response per request, and an empty response vector makes the wrapper bail with 'did not return an action lookup response' (src/cache/rustc.rs:275). Same protocol-integrity family as the prediction lookups.

Source

Thrown at src/cache/rustc.rs:275

            .transpose()?;
        if &actual != expected {
            bail!("compiler environment input changed: {name}");
        }
    }
    Ok(())
}

fn restore_result(
    action: &RustcAction,
    outputs: &RustcOutputs,
    discovered: &DiscoveredInputs,
    restore_outputs: bool,
) -> Result<Option<CachedCompilation>> {
    let responses = session::request_agent(&[AgentRequest::FindActionResult {
        action: action.digest.clone(),
    }])?;
    let Some(response) = responses.into_iter().next() else {
        bail!("cache agent did not return an action lookup response");
    };
    let result = match response {
        AgentResponse::ActionResult { result } => match result {
            Some(result) => result,
            None => return Ok(None),
        },
        AgentResponse::Error { message } => bail!(message),
        _ => bail!("cache agent returned an unexpected action lookup response"),
    };
    if result.version != 1 || result.action != action.digest {
        bail!("cached rustc action result has an invalid identity");
    }
    let metadata_digest = result
        .metadata
        .ok_or_else(|| eyre::eyre!("cached rustc action result has no metadata"))?;
    let output_root_digest = result
        .output_root
        .ok_or_else(|| eyre::eyre!("cached rustc action result has no output root"))?;

View on GitHub (pinned to 9dcfcaa0dc)

Solutions

  1. Re-run the build in a fresh session so the agent restarts cleanly
  2. Ensure one consistent mise version for agent and wrappers
  3. Persistent recurrence: disable the rustc cache and report the protocol drop
Defensive patterns

Strategy: retry

Try / catch

# Same transient protocol handling: reset agent env and retry
grep -q 'did not return an action lookup response' build.log && {
  unset MISE_CACHE_SOCKET MISE_CACHE_TASK MISE_CACHE_STAGING_DIR; cargo build;
}

Prevention

When it happens

Trigger: The agent closes/restarts between the wrapper's request and reply, or a version-skewed agent drops requests, returning zero responses for the action digest query.

Common situations: Agent killed during a long build; mise upgraded while a build was in flight; socket env vars stale after daemon churn.

Related errors


AI-assisted analysis of jdx/mise@9dcfcaa0dc (2026-08-17). Data as JSON: /api/errors/a419ce3fb6e13742. Report an issue: GitHub.