{"record":{"id":"0536d4ccc9546d3b","repo":"NousResearch/hermes-agent","slug":"monitor-script-and-monitor-url-are-mutually-exclus","errorCode":null,"errorMessage":"monitor_script and monitor_url are mutually exclusive — a job can only have one monitor source.","messagePattern":"monitor_script and monitor_url are mutually exclusive — a job can only have one monitor source\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"cron/jobs.py","lineNumber":1552,"sourceCode":"        _normalize_job_optional_text(job.get(\"base_url\"), strip_trailing_slash=True),\n        bool(job.get(\"no_agent\")),\n    )\n\n\ndef _validate_job_mode_invariants(\n    monitor_script: Optional[str],\n    monitor_url: Optional[str],\n    no_agent: bool,\n    script: Optional[str],\n) -> None:\n    \"\"\"Shared create/update validation for job execution-mode invariants.\n\n    ONE owner for the class: create_job and update_job both call this so an\n    invariant enforced at create time cannot be violated through the update\n    door (monitor jobs silently degrading when no_agent is flipped on, etc.).\n    \"\"\"\n    if monitor_script and monitor_url:\n        raise ValueError(\n            \"monitor_script and monitor_url are mutually exclusive — a job \"\n            \"can only have one monitor source.\"\n        )\n    if (monitor_script or monitor_url) and no_agent:\n        raise ValueError(\n            \"monitor_script/monitor_url cannot be combined with no_agent=True — \"\n            \"the whole point of a monitor job is to suppress or wake the AGENT \"\n            \"based on source changes. Use a plain no_agent script job instead.\"\n        )\n    if no_agent and not script:\n        raise ValueError(\n            \"no_agent=True requires a script — with no agent and no script \"\n            \"there is nothing for the job to run.\"\n        )\n\n\ndef create_job(\n    prompt: Optional[str],","sourceCodeStart":1534,"sourceCodeEnd":1570,"githubUrl":"https://github.com/NousResearch/hermes-agent/blob/c896c09c42910c584c4c7d2325b58c14713ea42c/cron/jobs.py#L1534-L1570","documentation":"Error \"monitor_script and monitor_url are mutually exclusive — a job can only have one monitor source.\" thrown in NousResearch/hermes-agent.","triggerScenarios":"Thrown at cron/jobs.py:1552 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Configure only one monitor source: monitor_script or monitor_url, not both."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c896c09c42910c584c4c7d2325b58c14713ea42c","analyzedAt":"2026-08-14T17:18:01.089Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}