NousResearch/hermes-agent · error · GenerationError

hatch cancelled

Error message

hatch cancelled

What it means

Error "hatch cancelled" thrown in NousResearch/hermes-agent.

Source

Thrown at agent/pet/generate/orchestrate.py:306

    done = 0
    with ThreadPoolExecutor(max_workers=workers) as pool:
        futures = [pool.submit(_gen_row, spec) for spec in generated_specs]
        # as_completed runs on the caller (request) thread, so progress events
        # emitted here inherit the request transport — unlike the worker threads.
        for fut in as_completed(futures):
            if cancelled():
                logger.info("pet hatch %r: cancelled — dropping remaining rows", slug)
                for pending in futures:
                    pending.cancel()
                break
            state, frames = fut.result()
            done += 1
            progress("row", f"{state}:{done}:{total_rows}")
            if frames:
                frames_by_state[state] = frames

    if cancelled():
        raise GenerationError("hatch cancelled")

    # Derive running-left from the approved running-right row (per-frame mirror,
    # preserving order/timing). Missing running-right is rejected below; a pet
    # without its canonical walk cycle is a failed hatch, not a shippable mascot.
    right = frames_by_state.get("running-right")
    if right:
        done += 1
        progress("row", f"running-left:{done}:{total_rows}")
        frames_by_state["running-left"] = atlas.mirror_frames(right)
        logger.info("pet hatch %r: row 'running-left' mirrored from running-right", slug)
    else:
        logger.warning("pet hatch %r: no running-right to mirror; left walk left empty", slug)

    # Idle is the resting state the renderer falls back to — guarantee it.
    if not frames_by_state.get("idle"):
        progress("row", "idle-fallback")
        frames_by_state["idle"] = [atlas.single_frame(base, fit=False)]

View on GitHub (pinned to c896c09c42)

Solutions

  1. Re-run hatch without cancelling.
  2. If cancellation was unintended, check for interrupts/timeouts in the run.

When it happens

Trigger: Thrown at agent/pet/generate/orchestrate.py:306 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/9e9685f215d048c4. Report an issue: GitHub.