{"record":{"id":"0f70b8a652230369","repo":"zeroclaw-labs/zeroclaw","slug":"invalid-schedule-every-ms-must-be-0","errorCode":null,"errorMessage":"Invalid schedule: every_ms must be > 0","messagePattern":"Invalid schedule: every_ms must be > 0","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/zeroclaw-runtime/src/cron/schedule.rs","lineNumber":49,"sourceCode":"                // expectations instead of always using UTC.\n                let local_from = from.with_timezone(&chrono::Local);\n                let next_local = cron.after(&local_from).next().ok_or_else(|| {\n                    ::zeroclaw_log::record!(\n                        WARN,\n                        ::zeroclaw_log::Event::new(module_path!(), ::zeroclaw_log::Action::Fail)\n                            .with_outcome(::zeroclaw_log::EventOutcome::Failure)\n                            .with_attrs(::serde_json::json!({\"expr\": expr})),\n                        \"cron schedule: no future occurrence for expression\"\n                    );\n                    anyhow::Error::msg(format!(\"No future occurrence for expression: {expr}\"))\n                })?;\n                Ok(next_local.with_timezone(&Utc))\n            }\n        }\n        Schedule::At { at } => Ok(*at),\n        Schedule::Every { every_ms } => {\n            if *every_ms == 0 {\n                anyhow::bail!(\"Invalid schedule: every_ms must be > 0\");\n            }\n            let ms = i64::try_from(*every_ms).context(\"every_ms is too large\")?;\n            let delta = ChronoDuration::milliseconds(ms);\n            from.checked_add_signed(delta).ok_or_else(|| {\n                ::zeroclaw_log::record!(\n                    ERROR,\n                    ::zeroclaw_log::Event::new(module_path!(), ::zeroclaw_log::Action::Fail)\n                        .with_outcome(::zeroclaw_log::EventOutcome::Failure)\n                        .with_attrs(::serde_json::json!({\"every_ms\": *every_ms})),\n                    \"cron schedule: every_ms overflowed DateTime arithmetic\"\n                );\n                anyhow::Error::msg(\"every_ms overflowed DateTime\")\n            })\n        }\n    }\n}\n\npub fn validate_schedule(schedule: &Schedule, now: DateTime<Utc>) -> Result<()> {","sourceCodeStart":31,"sourceCodeEnd":67,"githubUrl":"https://github.com/zeroclaw-labs/zeroclaw/blob/88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc/crates/zeroclaw-runtime/src/cron/schedule.rs#L31-L67","documentation":"Error \"Invalid schedule: every_ms must be > 0\" thrown in zeroclaw-labs/zeroclaw.","triggerScenarios":"Thrown at crates/zeroclaw-runtime/src/cron/schedule.rs:49 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set every_ms to a positive value greater than 0."],"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"}