← All features

Install and operateAvailable in v0.3.0

Troubleshooting OAH_* refusals

Every oah refusal starts with a code such as OAH_LEASE_CONFLICT, and the rest of the message names the file, lease or gate involved and the command to run next. The Troubleshooting page groups the common codes by step: setup, models, Jev, leases, packets, starting work, gates, wiki, review, push and landing, and tool updates.

When you need it

A refusal with no explanation stalls you; you need to know what it means and what to run next without reading the source.

How it works

  1. Run oah doctor first: it checks every tool oah uses and prints the official install command for each missing one.
  2. Read the whole message; it names the file, lease or gate involved and the command to run.
  3. Search the page for the code; each row says what it means and what to do next.
  4. Still stuck: oah status shows every lease, oah intent show <task> the intent's binding state, and oah gates status <task> which gates are met, without running anything.

Example

What to run after `OAH_SCOPE_EXCEEDED`: widen the scope, repeating every path.

oah renew --task <task> --agent <agent> --scope <path> …

Requirements

  • Nothing beyond oah; oah doctor and the message itself are the starting point.

Limits and recovery

  • The page lists the codes a beginner meets most often, not every code.
  • A test (tests/test_docs.py) checks that every code on the page still exists in oah's source.
  • The Models, Jev and difficulty, and Tool updates groups describe main, which is not in a release yet.

Original documents

Related