Skip to content

Troubleshooting ​

Start with doctor:

bash
pnpm exec ruhroh doctor \
  --scenario-dir ruhroh/scenarios \
  --suite-dir ruhroh/suites \
  --suite ruhroh-smoke \
  --adapter custom-shell

Add --json for CI or setup scripts.

first-run Is Blocked ​

first-run is a setup gate, not a benchmark run. Use it to find the next missing piece in the credential-free fixture path:

bash
pnpm exec ruhroh first-run
pnpm exec ruhroh first-run --json

If JSON output has dryRunReady: true but ready: false, the local scaffold, fixture agent, and fixture reviewer are ready for command preview, but the full Harbor-backed loop is still blocked. This is a useful setup milestone, not a completed run. Use the dry-run preview while installing Harbor:

bash
pnpm exec ruhroh first-run --allow-dry-run --json
pnpm exec ruhroh run --scenario-dir ruhroh/scenarios --scenario simple-newsletter --adapter custom-shell --dry-run

The first loop is complete only after a real run preserves a ruhroh-loop-result.json evidence file.

workflow Stays On The First Fixture Stage ​

workflow advances from the first stage only when it can find preserved run results. By default it checks results/, ruhroh/results/, and .generated/ruhroh/; pass a path explicitly when your Harbor outputs live elsewhere:

bash
pnpm exec ruhroh workflow ./path/to/results --html ruhroh-workflow.html
pnpm exec ruhroh validate-artifacts ./path/to/results

If no result is found, rerun the fixture without --dry-run. If a result is found but validation fails, fix evidence preservation before using compare or publish-check; a claim cannot be independently inspected without the result, manifest, reviewer output, journey, and workspace evidence.

Harbor Is Missing ​

doctor reports Harbor availability separately. You can still validate tasks, scaffold agent connectors, and generate task directories without starting a run:

bash
pnpm exec ruhroh validate --scenario-dir ruhroh/scenarios
pnpm exec ruhroh generate --scenario simple-newsletter

Use --dry-run to inspect the Harbor command before installing or invoking Harbor. Dry-run output is a preview only: it does not write Harbor task directories, write a run plan, start Harbor, or call an agent. Use ruhroh generate when you want to materialize the generated task files without starting Harbor. --generate-only remains available as a legacy alias.

Agent Completion Is Not Detected ​

For custom-shell, the agent command must either print the configured final JSON line or write the result file indicated by RUHROH_RESULT_PATH. Confirm the wrapper exits non-zero for run failures and does not claim success before the workspace outcome is complete.

bash
pnpm exec ruhroh new-adapter local-agent
pnpm exec ruhroh doctor --scenario-dir ruhroh/scenarios --adapter ./ruhroh/adapters/local-agent/run.sh

Agent Metadata Is Too Thin ​

doctor reports an adapter-metadata warning when a command wrapper cannot be inspected, does not write RUHROH_RESULT_PATH, or omits comparison metadata. Before repeated live-agent runs, update the wrapper result file to include adapterVersion, model, and evidence paths such as a transcript. Add usage when cost or token data is available.

If the wrapper is not a readable file path, move the command into a script and pass that script to --adapter; that gives Ruhroh and reviewers a stable agent command to inspect.

Reviewer JSON Is Malformed ​

The reviewer command must emit or write ruhroh_eval_result_v1. Validate the preserved run evidence after a failed run:

bash
pnpm exec ruhroh validate-artifacts ./path/to/run-artifacts --json

Look for the eval result path, schema URL, status, evidence refs, and criteria results.

Claim Is Not Publishable ​

Run the publication workflow:

bash
pnpm exec ruhroh publish-check ./path/to/results \
  --suite-dir ruhroh/suites \
  --suite ruhroh-smoke \
  --run-plan .generated/ruhroh/ruhroh-run-plan.json \
  --verify-sources

Exit code 2 means the result was readable but blocked. The blocker list tells you whether to collect more runs, select the right suite, fix run-plan coverage, repair evidence preservation, or improve reviewer evidence.

Evidence Files Are Missing ​

Check the individual run directory first:

bash
pnpm exec ruhroh report ./path/to/ruhroh-loop-result.json
pnpm exec ruhroh validate-artifacts ./path/to/run-artifacts

Missing journey, manifest, review input, workspace summary, or review result files reduce auditability and can block publication.

Shell Command Quoting Looks Wrong ​

Command-backed agent and reviewer commands run without a shell by default. If a command string contains pipes, redirects, variable expansion, or other shell operators, either wrap it in a script file or explicitly opt into shell execution only for trusted local commands.