{"record":{"id":"8d65a515880e6d9a","repo":"zeroclaw-labs/zeroclaw","slug":"agent-alias-is-required-cron-jobs-must-name-an-ow","errorCode":null,"errorMessage":"agent_alias is required; cron jobs must name an owning agent","messagePattern":"agent_alias is required; cron jobs must name an owning agent","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/zeroclaw-runtime/src/cron/store.rs","lineNumber":105,"sourceCode":"    name: Option<String>,\n    schedule: Schedule,\n    command: &str,\n    delivery: Option<DeliveryConfig>,\n    shell_output_format: CronShellOutputFormat,\n) -> Result<CronJob> {\n    let now = Utc::now();\n    validate_schedule(&schedule, now)?;\n    validate_delivery_config(delivery.as_ref())?;\n    let next_run = next_run_for_schedule(&schedule, now)?;\n    let id = Uuid::new_v4().to_string();\n    let expression = schedule_cron_expression(&schedule).unwrap_or_default();\n    let schedule_json = serde_json::to_string(&schedule)?;\n    let delivery = delivery.unwrap_or_default();\n\n    let delete_after_run = matches!(schedule, Schedule::At { .. });\n    let agent_alias = agent_alias.trim();\n    if agent_alias.is_empty() {\n        anyhow::bail!(\"agent_alias is required; cron jobs must name an owning agent\");\n    }\n\n    let shell_output_format_str = match shell_output_format {\n        CronShellOutputFormat::Wrapped => \"wrapped\",\n        CronShellOutputFormat::Raw => \"raw\",\n    };\n\n    with_initialized_connection(config, |conn| {\n        conn.execute(\n            \"INSERT INTO cron_jobs (\n                id, expression, command, schedule, job_type, prompt, name, session_target, model,\n                enabled, delivery, delete_after_run, agent_alias, created_at, next_run, shell_output_format\n             ) VALUES (?1, ?2, ?3, ?4, 'shell', NULL, ?5, 'isolated', NULL, 1, ?6, ?7, ?8, ?9, ?10, ?11)\",\n            params![\n                id,\n                expression,\n                command,\n                schedule_json,","sourceCodeStart":87,"sourceCodeEnd":123,"githubUrl":"https://github.com/zeroclaw-labs/zeroclaw/blob/88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc/crates/zeroclaw-runtime/src/cron/store.rs#L87-L123","documentation":"Error \"agent_alias is required; cron jobs must name an owning agent\" thrown in zeroclaw-labs/zeroclaw.","triggerScenarios":"Thrown at crates/zeroclaw-runtime/src/cron/store.rs:105 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set agent_alias on the cron job so it has an owning agent."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc","analyzedAt":"2026-08-23T01:07:41.857Z","schemaVersion":2},"datasetVersion":"2026-08-23T08:06:27.607Z"}