zeroclaw-labs/zeroclaw · error · anyhow::Error
Run {run_id} checkpoint input is not a JSON object; cannot a
Error message
Run {run_id} checkpoint input is not a JSON object; cannot amend field '{field}' What it means
Error "Run {run_id} checkpoint input is not a JSON object; cannot amend field '{field}'" thrown in zeroclaw-labs/zeroclaw.
Source
Thrown at crates/zeroclaw-runtime/src/sop/engine.rs:2743
// Same step-1 mapping as `step_input_value`; `.last()` alone starved an
// intake-gate pipeline (checkpoint BEFORE the first work step) of its
// trigger payload.
let run = self
.active_runs
.get_mut(run_id)
.ok_or_else(|| anyhow::Error::msg(format!("Active run not found: {run_id}")))?;
let mut piped = step_input_value(run, run.current_step);
// Operator amendment: replace the declared editable field BEFORE any run
// mutation, so a non-amendable input (pre-flighted by
// `can_amend_checkpoint`, so defensive here) leaves the run parked.
if let Some((field, text)) = amend {
match piped.as_object_mut() {
Some(map) => {
map.insert(field, serde_json::Value::String(text));
}
None => {
self.release_claim_on_park(run_id);
bail!(
"Run {run_id} checkpoint input is not a JSON object; \
cannot amend field '{field}'"
);
}
}
}
let run = self
.active_runs
.get_mut(run_id)
.ok_or_else(|| anyhow::Error::msg(format!("Active run not found: {run_id}")))?;
let prior_waiting_since = run.waiting_since.clone();
run.status = SopRunStatus::Running;
run.waiting_since = None;
match self.advance_deterministic_step(run_id, piped, None) {
Ok(action) => Ok(action),
Err(e) => {
// Defensive: the pre-flight above validated the same lookups under
// this lock, so this is unreachable in practice. If the advanceView on GitHub (pinned to 88bb9c8533)
Solutions
- Amend only when the checkpoint input is a JSON object containing the named field.
When it happens
Trigger: Thrown at crates/zeroclaw-runtime/src/sop/engine.rs:2743 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of zeroclaw-labs/zeroclaw@88bb9c8533 (2026-08-23).
Data as JSON: /api/errors/a089a13d776c10cb.
Report an issue: GitHub.