2 / 5Harness Labs · 30 min read

Failure studio

Break it on purpose: doctor, logs, stuck approvals, bad tool loops — then fix.

00of 06 sections behind you

Why this lab exists

Failure studio
01
Break auth
Doctor + logs
02
Stuck approval
Timeout path
03
Tool thrash
Stop + scope
04
failure-log.md
Three rows

Mastery teaches the happy path. Production is the unhappy path: wrong key, hung approval, agent looping tools, gateway silent. This lab forces three failures so doctor and logs become muscle memory — not panic search.

Safety rules

  • Do this on a non-production profile if you have one.
  • Never paste API keys or bot tokens into failure-log.md.
  • Do not open WAN ports or disable allowlist “to reproduce.”
  • Stop if you are about to run destructive shell on real data — use a throwaway folder.
Goal is observability, not bricking the host. If chat dies completely, reinstall path is mastery 03 — not this lab.

Failure A — provider / auth smoke

Steps · tap the number to check0/4
  1. With Hermes working, temporarily break model auth (wrong key in a throwaway env, or disable the active provider in UI). Do not commit the bad key.
  2. Send a one-line chat. Capture the error surface (UI message or hermes logs snippet redacted).
  3. Run hermes doctor (or Desktop health) if available. Note what it caught vs what it missed.
  4. Restore the good key. Confirm chat works. Log A in failure-log.md.

Failure B — approval stuck

Steps · tap the number to check0/4
  1. Set approvals to manual (or ensure a dangerous tool will prompt).
  2. Ask for a tool action that needs approval. Leave it unanswered for 30–60s (or until timeout if shorter).
  3. Note timeout / deny behavior. Approve or cancel deliberately.
  4. Log B: approval mode, what the UI showed, final outcome.

Failure C — tool thrash / bad path

Steps · tap the number to check0/4
  1. Ask the agent to write a file to a path that does not exist or is outside the allowed workspace (safe denial expected).
  2. If it loops retries, stop the run after 2–3 cycles. Prefer “stop / cancel” over force-kill unless hung.
  3. Find logs or session transcript. Redact paths if sensitive. Note how you stopped the loop.
  4. Log C with one sentence on how you will scope tools next time.

failure-log.md template

# failure-log.md Date / profile: [...] A Auth: error seen · doctor said · fix B Approval: mode · timeout · fix C Tool thrash: prompt · stop method · fix Secrets: none pasted

You are done when

Proof · this device0/1

Stored on this device only — not sent anywhere.