NousResearch/hermes-agent · error · RuntimeError
Cron job '{job_name}' has no model configured (job.model={jo
Error message
Cron job '{job_name}' has no model configured (job.model={job.get('model')!r}, HERMES_MODEL={os.getenv('HERMES_MODEL', '')!r}, config.yaml model.default missing or empty). Set a per-job model via `cronjob action=update job_id={job_id} model=<name>` or set a default with `hermes model <name>`. What it means
Error "Cron job '{job_name}' has no model configured (job.model={job.get('model')!r}, HERMES_MODEL={os.getenv('HERMES_MODEL', '')!r}, config.yaml model.default missing or empty). Set a per-job model via `cronjob action=update job_id={job_id} model=<name>` or set a default with `hermes model <name>`." thrown in NousResearch/hermes-agent.
Source
Thrown at cron/scheduler.py:4006
).strip()
if not job.get("model"):
if _cron_default_model:
# Cron-fleet default beats the global chat model: it is
# the user's explicit "cron runs on this" setting.
model = _cron_default_model
else:
# Shared with Desktop's post-save impact summary so both
# paths compare snapshots against the same global model.
_, _global_model = resolve_cron_model_drift_defaults(_cfg)
if _global_model:
model = _global_model
except Exception as e:
logger.warning("Job '%s': failed to load config.yaml, using defaults: %s", job_id, e)
# Fail fast if no model resolved from job / env / config.yaml: an empty
# model otherwise reaches the provider as an opaque 400 (#23979).
if not (isinstance(model, str) and model.strip()):
raise RuntimeError(
f"Cron job '{job_name}' has no model configured "
f"(job.model={job.get('model')!r}, "
f"HERMES_MODEL={os.getenv('HERMES_MODEL', '')!r}, "
"config.yaml model.default missing or empty). "
f"Set a per-job model via "
f"`cronjob action=update job_id={job_id} model=<name>` or set a "
"default with `hermes model <name>`."
)
# Apply IPv4 preference if configured.
try:
from hermes_constants import apply_ipv4_preference
_net_cfg = _cfg.get("network", {})
if isinstance(_net_cfg, dict) and _net_cfg.get("force_ipv4"):
apply_ipv4_preference(force=True)
except Exception:
pass
View on GitHub (pinned to c896c09c42)
Solutions
- Set a per-job model via `cronjob action=update job_id=<id> model=<name>`.
- Or set a default model with `hermes model <name>`.
When it happens
Trigger: Thrown at cron/scheduler.py:4006 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/618647b796b350e8.
Report an issue: GitHub.