{"record":{"id":"3d602e42fa03f631","repo":"NousResearch/hermes-agent","slug":"cron-job-job-id-blocked-for-safety-err","errorCode":null,"errorMessage":"Cron job '{job_id}' blocked for safety: {err}","messagePattern":"Cron job '(.+?)' blocked for safety: (.+?)","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"cron/scheduler.py","lineNumber":3203,"sourceCode":"        # error. But any job that DID set a base_url is refused until the\n        # validator can actually vet the pair. Operator fallback providers come\n        # from config, not the job, so they are unaffected.\n        if job.get(\"base_url\"):\n            err = (\n                f\"could not validate provider/base_url pair \"\n                f\"({exc.__class__.__name__}: {exc}); refusing to run a job with \"\n                \"an unverified base_url override\"\n            )\n        else:\n            err = None\n    if err:\n        job_id = job.get(\"id\")\n        logger.error(\n            \"Job '%s': refusing to run — unsafe provider/base_url pair could \"\n            \"exfiltrate a stored credential: %s\",\n            job_id, err,\n        )\n        raise RuntimeError(f\"Cron job '{job_id}' blocked for safety: {err}\")\n\n\n# Marker prefix stamped into the error string returned by ``run_job`` when the\n# pre-dispatch configuration validation (T1-26) refuses to run the agent.\n# ``run_one_job`` keys off it to record ``last_status='blocked_config'`` and to\n# apply the alert-once dedup. The ``:silent`` variant means \"already alerted on\n# a previous tick — do not deliver again\".\nBLOCKED_CONFIG_MARKER = \"[blocked_config]\"\nBLOCKED_CONFIG_SILENT_MARKER = \"[blocked_config:silent]\"\n\n# Marker prefix for a #44585 drift-guard skip. Same alert-once contract as\n# blocked_config: run_one_job keys off it to record last_status and the\n# ``:silent`` variant means \"already alerted on a previous tick — do not\n# deliver again\" (the drift_alerted bit on the job record, #73506 shape).\nDRIFT_SKIP_MARKER = \"[drift_skip]\"\nDRIFT_SKIP_SILENT_MARKER = \"[drift_skip:silent]\"\n\n","sourceCodeStart":3185,"sourceCodeEnd":3221,"githubUrl":"https://github.com/NousResearch/hermes-agent/blob/c896c09c42910c584c4c7d2325b58c14713ea42c/cron/scheduler.py#L3185-L3221","documentation":"Error \"Cron job '{job_id}' blocked for safety: {err}\" thrown in NousResearch/hermes-agent.","triggerScenarios":"Thrown at cron/scheduler.py:3203 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Read the block reason in the error and adjust the job to comply with the safety guard.","Remove lifecycle or otherwise blocked commands from the job."],"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"}