NousResearch/hermes-agent · error · RuntimeError
{_drift_marker} Skipped to prevent unintended spend: global
Error message
{_drift_marker} Skipped to prevent unintended spend: global inference config drifted since this job was created ({_changes}), and this job is unpinned. No inference call was made. {_remediation} This alert is sent once; the job stays skipped until the config is pinned or restored. See #44585. What it means
Error "{_drift_marker} Skipped to prevent unintended spend: global inference config drifted since this job was created ({_changes}), and this job is unpinned. No inference call was made. {_remediation} This alert is sent once; the job stays skipped until the config is pinned or restored. See #44585." thrown in NousResearch/hermes-agent.
Source
Thrown at cron/scheduler.py:4314
_changes,
_remediation,
)
# Alert-once (#73506 shape): persist the drift_alerted bit so
# only the FIRST drifted tick delivers; run_one_job suppresses
# delivery on the silent marker. mark_job_run clears the bit
# when a run succeeds (drift healed), re-arming the alert.
_drift_already_alerted = False
try:
from cron.jobs import mark_drift_alerted
_drift_already_alerted = mark_drift_alerted(job_id)
except Exception:
pass # fail open: better a duplicate alert than none
_drift_marker = (
DRIFT_SKIP_SILENT_MARKER if _drift_already_alerted
else DRIFT_SKIP_MARKER
)
raise RuntimeError(
f"{_drift_marker} Skipped to prevent unintended spend: global "
f"inference config drifted since this job was created "
f"({_changes}), and this job is unpinned. No inference call "
f"was made. {_remediation} "
f"This alert is sent once; the job stays skipped until the "
f"config is pinned or restored. See #44585."
)
fallback_model = get_fallback_chain(_cfg) or None
credential_pool = None
runtime_provider = str(runtime.get("provider") or "").strip().lower()
if runtime_provider:
try:
from agent.credential_pool import load_pool
pool = load_pool(runtime_provider)
if pool.has_credentials():
credential_pool = pool
logger.info(View on GitHub (pinned to c896c09c42)
Solutions
- Pin the job's inference config, or restore the global config the job was created with, then resume the job.
- Review the drift details in the alert before pinning.
When it happens
Trigger: Thrown at cron/scheduler.py:4314 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of NousResearch/hermes-agent@c896c09c42 (2026-08-14).
Data as JSON: /api/errors/842e01cf11a8f04a.
Report an issue: GitHub.