zeroclaw-labs/zeroclaw · error · anyhow::Error
Unknown cron shell_output_format value: {other:?}
Error message
Unknown cron shell_output_format value: {other:?} What it means
Error "Unknown cron shell_output_format value: {other:?}" thrown in zeroclaw-labs/zeroclaw.
Source
Thrown at crates/zeroclaw-runtime/src/cron/store.rs:1160
allowed_tools
.map(serde_json::to_string)
.transpose()
.context("Failed to serialize cron allowed_tools")
}
fn decode_shell_output_format(raw: Option<&str>) -> Result<CronShellOutputFormat> {
// Exact match against the canonical `#[serde(rename_all = "snake_case")]`
// spellings, not a JSON-string round trip: wrapping arbitrary stored text
// in quotes and handing it to a JSON parser would let an escape sequence
// in the raw column (e.g. `raw`) decode as a different value than
// what was actually persisted.
match raw {
None => {
anyhow::bail!("cron shell_output_format column is NULL; schema requires TEXT NOT NULL")
}
Some("wrapped") => Ok(CronShellOutputFormat::Wrapped),
Some("raw") => Ok(CronShellOutputFormat::Raw),
Some(other) => anyhow::bail!("Unknown cron shell_output_format value: {other:?}"),
}
}
fn decode_allowed_tools(raw: Option<&str>) -> Result<Option<Vec<String>>> {
if let Some(raw) = raw {
let trimmed = raw.trim();
if !trimmed.is_empty() {
return serde_json::from_str(trimmed)
.map(Some)
.with_context(|| format!("Failed to parse cron allowed_tools JSON: {trimmed}"));
}
}
Ok(None)
}
pub fn sync_declarative_jobs(
config: &Config,
decls: &std::collections::HashMap<String, zeroclaw_config::schema::CronJobDecl>,View on GitHub (pinned to 88bb9c8533)
Solutions
- Use a recognized shell_output_format value (e.g. text or json).
When it happens
Trigger: Thrown at crates/zeroclaw-runtime/src/cron/store.rs:1160 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/249466f8cfb4fc6f.
Report an issue: GitHub.